OpenOffice.org: макро помощь - PullRequest
0 голосов
/ 12 мая 2009

В OOo Calc

Мне нужно скопировать столбец (только значения , а не формат) с одного листа на другой (в том же листе), используя макрос, назначенный кнопке.

Я немного осмотрелся, но не нашел ничего существенного: - (

Ответы [ 2 ]

1 голос
/ 29 мая 2014

Чтобы ответить на оригинальный вопрос:

использовать массив данных, который будет значительно быстрее на больших диапазонах ячеек

Source = ThisWeek.getCellRangeByName("H12:H206")
source_data = Source.getDataArray()

Target = Steering.getCellRangeByName("M12:AU206").setDataArray(source_data())
1 голос
/ 12 мая 2009

Хорошо, я смог построить ответ и начал изучать OOo Basic, которого мне до сих пор удавалось избежать; -)

Я даю это как есть.

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
...