问题描述
我具有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 =CHECKBZRANGE(A6:C9)。现在在LibreOffice 7.0.0.3中,我收到此错误消息
Inadmissible value or data type.
Data type mismatch.
[OK]
在线
for each vCellValue in vCellRangeValues
我搜索了此内容,但找不到答案。是这个吗?
- LibreOffice VBA的新功能?
- 回归?
如何在宏函数中访问range的值?
解决方法
由于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