2017-03-17 84 views
2

我有一组日期在列B06/03/2017格式化在自定义dd-mmm格式给我06-Mar输出。Excel VBA查找()日期问题

如果我手动执行查找/替换并搜索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(因为它是该列的标题)。

任何建议我在这里失踪?

EDIT

为了覆盖几个下面的意见:

是片材被命名为相同的,只是在不同的工作簿(主文件到拉从多个相同的源的数据)

就格式而言,我从具有06/03/2017的真实值的日期获得搜索条件,其格式为dd-mmm,在数据范围内搜索为真实日期06/03/2017也格式化为dd-mmm

+0

什么是你的目标是什么?你的例子正在为我工​​作。我想也许你没有完全解释你的问题。你的意思是看'xlFormula'吗? – Marc

+0

是否真的是你的来源和目的地表单相同? mDate在Dest工作表中是否真的存在?或者它是错误的? –

+1

@ D.O。 - 我怀疑用不同的工作表命名不同的工作簿。 – Jeeped

回答

0

尽量给变量mDate您的日期相同的格式:

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