我的代码是否正确,它始终输出“Nothing found”但我有一个与DateTxt匹配的数据。这是我想在下面做的,我希望它找到当前日期并选择其列并将其复制粘贴到另一个工作簿和工作表中,这与前一天相同。日期在第2行,并在列中移动。
Dim DateTxt As Date
DateTxt = CLng(Date)
...
With DataWB.Worksheets("Summary").Range("2:1")
Set rng = .Find(What:=DateTxt, _
After:=.Cells(.Cells.Count), _
LookIn:=xlFormulas, _
LookAt:=xlWhole, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not rng Is Nothing Then
Application.Goto rng, True
MsgBox "Value Found" + rng.Value
Else
MsgBox "Nothing found"
End If
End With
以下是示例数据和输出: 获取数据的工作簿:
A B C D
1
2 Date Sept5 Sept6 Sept7
3 Data1 Value1 Value2 Value3
4 Data2 Value4 Value5 Value6
在目的地Wokrbook中,我将获取当前和前一天的日期和数据。
A B C
1
2 Date Sept6 Sept7
3 Data1 Value2 Value3
4 Data2 Value5 Value6
答案 0 :(得分:0)
在range.find中 What 字段是文本格式。
删除行:
DateTxt = CLng(Date)
这将运行
和排队:
MsgBox "Value Found" + rng.Value
将+替换为&,因为您无法将字符串值添加到long值。