2016-04-22 4 views
1

Я пишу свой первый макрос для Libre Office прямо сейчас, и у меня возникла небольшая проблема: мой код выдает ошибку: BASIC Runtime error; Процедура суб- или функции не определена.Подфункция или функция Процедура не определена

Строка с «If Cells (RowCnt, ChkCol ......) выдает ошибку. Я просмотрел другие записи здесь, но я не смог найти ошибку ... может кто-нибудь помочь ? я

REM ***** BASIC ***** 

Sub Zeilennausblenden_Nullsummen 
BeginRow=4 
EndRow = 46 
ChkCol= D 

For RowCnt = BeginRow To EndRow step 1 
    If Cells(RowCnt,ChkCol).Value > 1 Then 
     Cells(RowCnt,ChkCol).EntireRow.Hidden = True 
    End if 
Next 
End Sub 

PS: функция должна скрыть все строки, в которых целое число выше, чем «1» в колонке «D»

заранее спасибо

ответ

2

Вот что код выглядит в LibreOffice Basic (ака StarBasic):

Sub Zeilennausblenden_Nullsummen 
    BeginRow=4 
    EndRow = 46 
    ChkCol= 3 
    oSheet = ThisComponent.Sheets(0) 
    For RowCnt = BeginRow To EndRow step 1 
     oCell = oSheet.getCellByPosition(ChkCol,RowCnt) 
     If oCell.Value > 1 Then 
      oRow = oSheet.getRows().getByIndex(RowCnt) 
      oRow.IsVisible = False 
     End if 
    Next 
End Sub 

Я не был уверен, что если BeginRow должно быть 3 или 4, потому что это с нуля. Вы можете проверить это и решить.

Обратите внимание, что для выполнения этой задачи макрос не требуется. Самый простой способ - перейти к Data -> More Filters -> Standard Filter.

+0

это очень помогло мне! Я также не знал о параметре Data/Filter – Cribber

1

это потому, что CELLS не Функция StarBasic.

Это VBA (другой язык программирования). Некоторые версии OpenOffice поддерживают его использование, если оператор (Option VBASupport 1) помещается в первую строку исходного кода.

Проверьте подлинность документа «Макросы OpenOffice, написанные Эндрю Питоньяком», который отлично подходит для изучения и доступен в немецком переводе.

+0

спасибо. Я положил его в первую строку, но он не работал - я использовал Libre Office Calc, переключившись на обычный excel, теперь ... даст отчет. – Cribber

+0

Документ Андрея - отличный ресурс, но не объясняет, как показывать и скрывать строки, как задавали в вопросе. –

+1

Вопрос был «почему у меня ошибка» :-) Но в любом случае - я проверил свои 3 копии документа Андрея, и вы правы, потому что это не демонстрация сокрытия строк. +1 для вашего примера – ngulam