子程序或函数程序未定义
Sub- or Function Procedure not defined
我现在正在为 Libre Office 编写我的第一个宏,但遇到了一些问题:我的代码抛出错误:BASIC 运行时错误;未定义子过程或函数过程。
带有“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:该函数应隐藏所有在第 "D"
列中出现大于“1”的整数的行
提前致谢
那是因为 CELLS
不是 StarBasic 函数。
是VBA(不同的编程语言)。某些版本的 OpenOffice 支持在源代码的第一行放置语句 (Option VBASupport 1
) 时使用它。
在网上查看 Andrew Pitonyak 的 "OpenOffice Macros Explained" 文档 - 非常适合学习,也提供德语翻译。
以下是 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
.
我现在正在为 Libre Office 编写我的第一个宏,但遇到了一些问题:我的代码抛出错误:BASIC 运行时错误;未定义子过程或函数过程。
带有“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:该函数应隐藏所有在第 "D"
列中出现大于“1”的整数的行提前致谢
那是因为 CELLS
不是 StarBasic 函数。
是VBA(不同的编程语言)。某些版本的 OpenOffice 支持在源代码的第一行放置语句 (Option VBASupport 1
) 时使用它。
在网上查看 Andrew Pitonyak 的 "OpenOffice Macros Explained" 文档 - 非常适合学习,也提供德语翻译。
以下是 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
.