今天我有.Find功能的新问题 . 我试图这样做 . 通过一个工作表,其中包含从另一个工作表链接的单元格 . 我有ws1,其中包含来自ws2的链接日期的 Headers 行 . 举个例子:ws1 A1单元格公式= ws2!$ A $ 1,ws1 B1公式是= ws2!$ A $ 2 . ws2包含A列中的日期 .
我在ws1中使用.Find来查找用户表单(即ComboBox1.Value)上ComboBox1中显示的值 . ComboBox1源直接链接到ws2 A列,update上的值更改为dd-mmm-yy格式 .
这是代码:
Private Sub TestSub()
Dim colRng As Range
With Worksheets("ws1").Range("A1:FZ200")
Set colRng = .Find(CDate(ComboBox1.Value))
End With
MsgBox "colRng is: " + colRng.Address
End Sub
这给了我运行时错误91:对象或With Block变量未设置 . 在Debug上,colRng的值是Nothing而不是Range .
我唯一能想到的是链接的单元格正在弄乱格式,但我不知道如何解决这个问题 . 有任何想法吗?
更新:我在我的语句中使用一个确实有效的字符串测试.Find函数 .
With Worksheets("ws1").Range("A1:FZ200")
Set colRng = .Find(ComboBox1.Value)
End With
MsgBox "colRng is: " + colRng.Address
如果它是从另一个工作表链接的话,我不知道怎样去查找单元格中的值 . 有什么建议?
2 回答
好吧,
.Find()
没有找到任何东西,这就是原因 . 你知道你在找什么吗?如果你写CDate(ComboBox1.Value)
它会得到预期值吗?一般来说,为避免在
.Find()
找不到任何内容时出现此错误,这是解决方法:所以日期在Excel中很难处理,因为它们可以被解释为整数或字符串(并使用不同的时区格式化)
为了便于修复,以下代码应允许取消注释一行以查找相应的日期或字符串
作为更完整的答案,您可以使用以下通用FindAll函数...