带有日期问题的Excel VBA Find()

时间:2017-03-17 17:42:15

标签: excel excel-vba vba

我在B列中有一组日期,例如06/03/2017,格式为自定义dd-mmm格式,可以输出06-Mar

如果我手动执行查找/替换并搜索06-Mar并选择Look In: Values,则会发现它没有问题,但是通过VBA执行此操作并不起作用。

Dim Source as Worksheet, Dest as Worksheet
Dim mDate as String, copyRow as Integer

Set Dest = ThisWorkbook.Sheets("Weekly Updates")
Set Source = ActiveWorkbook.Sheets("Weekly Updates")
mDate = Dest.Range("B2").Text
copyRow = Source.Range("B:B").Find(What:=mDate, LookIn:=xlValues).Row

我尝试将mDate作为值并搜索公式和值,但似乎没有任何效果。

该行调试copyRow = Source.......但是如果此时手动打开“查找/替换”窗口,它会在" 06-Mar"中填写搜索栏,并在列中查找值B没有问题。

如果我用字符串替换mDate,我知道它就在那里,例如Find(What:="W/C".....它将copyRow返回为1(因为它是该列的标题)。

我在这里缺少什么建议?

修改

要涵盖以下几条评论:

是的,工作表的名称相同,只是在不同的工作簿中(主文件从多个相同的源中提取数据)

就格式而言,我从格式为06/03/2017的真值dd-mmm的日期获取搜索条件,在一系列数据中搜索格式为06/03/2017的格式也作为dd-mmm

1 个答案:

答案 0 :(得分:0)

尝试为变量mDate提供与日期相同的格式:

copyRow = Source.Range("B:B").Find(What:=Format(mDate, "dd-mmm"), LookIn:=xlValues).Row