OpenOffice.org: macro aiuto
-
21-08-2019 - |
Domanda
In OOo Calc
Ho bisogno di copiare una colonna (solo i valori , non il formato) da un foglio all'altro (nella stessa foglio di lavoro) utilizzando una macro assegnata a un pulsante.
ho passato in rassegna un po 'in giro, ma ho trovato nulla di significativo: - (
Soluzione
Per rispondere alla domanda iniziale:
utilizzare una matrice di dati, che sarà significally veloce su grandi intervalli di celle
Source = ThisWeek.getCellRangeByName("H12:H206")
source_data = Source.getDataArray()
Target = Steering.getCellRangeByName("M12:AU206").setDataArray(source_data())
Altri suggerimenti
OK, ho potuto costruire la risposta e ha iniziato l'apprendimento OOo di base, che sono riuscito ad evitare fino ad ora; -)
lo do come è.
Sub UpdateThisWeek
Dim Doc As Object
Dim ThisWeek As Object
Dim Steering As Object
Dim Source As Object
Dim Target As Object
Dim Week as Integer
Doc = ThisComponent
ThisWeek = Doc.Sheets.getByName("This week")
Steering = Doc.Sheets.getByName("Steering")
Week = Steering.getCellByPosition(6,4).Value
Source = ThisWeek.getCellRangeByName("H12:H206")
Target = Steering.getCellRangeByName("M12:AU206").getCellRangeByPosition(Week-19,0,Week-19,194)
Dim i, s
For i = 0 To 194
s = Source.getCellByPosition(0, i).Value
If s > 0 Then
Target.getCellByPosition(0, i).Value = s
Else
Target.getCellByPosition(0, i).String = ""
End If
Next i
End Sub
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow