[英]LibreOffice Calc macro function accessing cell range
我有函數訪問單元格范圍的函數(這里重復):
public function CHECKBZRANGE(vCellRangeValues as variant) as integer
dim i as integer
dim vCellValue as variant
for each vCellValue in vCellRangeValues
msgbox vCellValue
i = i + 1
next
CHECKBZRANGE = i
end function
它曾經在 LibreOffice <=6.xy 中工作,例如=CHECKBZRANGE(A6:C9)
。 現在在 LibreOffice 7.0.0.3 中,我收到此錯誤消息
Inadmissible value or data type.
Data type mismatch.
[OK]
在行中
for each vCellValue in vCellRangeValues
我搜索了這個,但找不到答案。 這是:
如何訪問宏函數中的范圍值?
由於 vCellRangeValues 不是單元格的范圍,而是這些單元格的值的數組,因此您應該使用兩個嵌套循環來顯示每個值 - 在行和列上:
Function CHECKBZRANGE(vCellRangeValues As Variant) As Integer
Dim iRow As Long, iColumn As Long
For iRow = LBound(vCellRangeValues) To UBound(vCellRangeValues)
For iColumn = LBound(vCellRangeValues,2) To UBound(vCellRangeValues,2)
msgbox "Cell (" & iRow & "," & iColumn & ") = " & vCellRangeValues(iRow, iColumn )
Next iColumn
Next iRow
CHECKBZRANGE = (UBound(vCellRangeValues)-LBound(vCellRangeValues) +1) * _
(UBound(vCellRangeValues,2)-LBound(vCellRangeValues,2) +1)
End Function
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.