我在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
。
答案 0 :(得分:0)
尝试为变量mDate提供与日期相同的格式:
copyRow = Source.Range("B:B").Find(What:=Format(mDate, "dd-mmm"), LookIn:=xlValues).Row