我有以下代码,在更改受监视的工作表时调用:
Public Sub selectionCallback(tag As String, ByVal target As Range)
Set cellAddress = target
Set cellValue = Nothing
cellValue = target.Value
End Sub
当我尝试检索cellValue(1, 1)
时,我没有问题 - 除非我只选择了一个单元格 - 然后我得到了类型不匹配。
我正在使用这些值来比较新输入的数据,从而跟踪通过电子邮件发送的更改。
答案 0 :(得分:1)
原因是因为您正在使用变体而Excel正在猜测cellValue应该是什么类型的值。当你发送一个范围内的多个单元格的值时,它变成一个二维数组,当你发送一个单值时,它就像一个双重处理它。
一个双倍,它没有索引值。一个简单的解决方法是使用以下代码,但这不是最佳实践,最好测试单元格值是否是单独函数中的数组。
Public Sub selectionCallback(tag As String, ByVal target As Range)
Dim cellAddress As Range
Dim cellValue As Variant
Set cellAddress = target
cellValue = target.Value
On Error Resume Next
MsgBox CStr(cellValue(1, 1))
MsgBox cellValue
On Error GoTo 0
End Sub