Excel / VBA - 连续查找数据

时间:2014-09-07 02:51:53

标签: excel vba excel-vba

我的代码是否正确,它始终输出“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

1 个答案:

答案 0 :(得分:0)

在range.find中 What 字段是文本格式。

删除行: DateTxt = CLng(Date) 这将运行

和排队: MsgBox "Value Found" + rng.Value 将+替换为&,因为您无法将字符串值添加到long值。