Inicio de sesión

Quién está conectado

Actualmente hay 0 usuarios y 6 invitados en línea.

Sindicar

Distribuir contenido

Metodo equivalente al metodo End

Hola...

En VBA de Excel, hay un metodo bastante eficiente del objeto Range que se llama End, su funcion es llevar el cursor a la celda que este, a partir de la celda activa, en direccion: arriba, abajo, derecha o izquierda y seleccionarla, todo, dentro de la region actual que como saben es la que esta delimitada por una fila o columna en blanco, vi un ejemplo de sustitucion en SB pero era algo largo, el siguiente ejemplo hace lo mismo con menos lineas, espero le sirva a alguien...

'*************************************************************************************************
' MACRO PARA MOVERSE A LOS EXTREMOS DE LA CELDA ACTIVA
'
' Copyright (C) 2005 Mauricio Baeza Servin
' Este programa es software libre. Puede redistribuirlo y/o modificarlo bajo los términos de la
' Licencia Pública General de GNU según es publicada por la Free Software Foundation, bien de la
' versión 2 de dicha Licencia o bien (según su elección) de cualquier versión posterior.
'
' Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso
' sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR.
' Véase la Licencia Pública General de GNU para más detalles.
'
' Debería haber recibido una copia de la Licencia Pública General junto con este programa. Si no ha
' sido así, escriba a la Free Software Foundation, Inc., en 675 Mass Ave, Cambridge, MA 02139, EEUU.
'
' Mauricio Baeza - mau74bs@yahoo.com.mx
'
'*************************************************************************************************
Option Explicit

'Solo para pruebas
Public Sub Pruebas()
Call MueveteA("izquierda", False)
End Sub

'Direccion = direccion a la que nos queremos mover, pasado como texto
' arriba
' abajo
' derecha
' izquierda
'Aunque yo preferiria solo pasar un argumento entero 1,2,3 o 4
'El argumento Seleccion es interesante
'False = Solo mueve el cursor en la direccion indicada
'True = Mueve y selecciona a partir de la celda activa y hasta la direccion especificada

Public Sub MueveteA(ByVal Direccion As String, ByVal Seleccion As Boolean)
Dim Document As Object
Dim dispatcher As Object
Dim Datos(1) As New com.sun.star.beans.PropertyValue
Dim sDireccion As String

Set Document = ThisComponent.CurrentController.Frame
Set dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

Datos(0).Name = "By"
Datos(0).Value = 1
Datos(1).Name = "Sel"
Datos(1).Value = Seleccion

Select Case Direccion
Case "arriba" : sDireccion = ".uno:GoUpToStartOfData"
Case "derecha" : sDireccion = ".uno:GoRightToEndOfData"
Case "abajo" : sDireccion = ".uno:GoDownToEndOfData"
Case "izquierda": sDireccion = ".uno:GoLeftToStartOfData"
End Select
dispatcher.executeDispatch(document, sDireccion, "", 0, Datos())

End Sub

Saludos

Mauricio

Sin suscripción


Documentación LibreOffice en español

Comentarios recientes

Encuesta

¿Sobre qué programas esperas encontrar tutoriales y ejercicios en SuperAlumnos.net? :