我真的试图自己解决这个错误,但我似乎无法弄明白。我有一系列的单元格,我试图找到一个特定的值,它不会返回任何东西,即使我知道值是那里,我知道搜索值匹配范围内的值。
Dim targetDate As Date
Dim rng As Range
targetDate = Sheet1.Cells(3,3).Value
'the Year(targetDate) evaluates to 2015 and the search range has values 2015 at C1 and value 2016 at O1
'All the other cells are blank, unformatted, and the two values in the range are in general format
Set rng = Sheet2.Range("A1:Z1").Find(What:=Year(targetDate), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)
到目前为止我尝试过的所有事情都会导致一切都没有。我知道Find的一些输入值会转移到下一个调用,所以我在这次调用中重置它们以确保我得到正确的设置。我已经尝试设置if来比较Year(targetDate)和Range(“C1”)。Value并将其评估为true。最奇怪的是,这段代码至少为我运行了几次宏,现在拒绝工作。我已经用尽了所有关于解决方案的想法,我知道这个问题非常具体,但希望有人可以提供帮助。如果您需要更多信息,请询问。
谢谢
答案 0 :(得分:0)
此代码改编自:http://www.rondebruin.nl/win/s9/win006.htm
Sub Test()
Dim FindString As String
Dim rng As Range
FindString = Format(Sheet1.Cells(3, 3).Value, "YYYY")
With Sheets("Sheet1").Range("A1:Z1")
Set rng = .Find(What:=FindString, _
LookIn:=xlValues, _
LookAt:=xlPart, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not rng Is Nothing Then
Application.Goto rng, True
Else
MsgBox "Nothing found"
End If
End With
End Sub