【发布时间】:2015-09-12 08:55:37
【问题描述】:
美好的一天 我正在尝试使用 strLookup 从不同的工作簿运行 vlookup。 如果工作簿和工作表名称是静态的,则效果很好;但是我需要从我之前在宏中定义的字符串中插入一个动态工作表名称,它不起作用
我尝试了以下
这个作品:
strLookup = "'C:\Users\hayekn\Desktop\AR Reports\0MENACA Working File\AR Working File\1- Macro AR reporting\Delta\[test.xlsx]40'!A:B"
这些不起作用(试图将工作表名称“40”更改为之前定义的动态值(DailyWeek -1)
strLookup = "'C:\Users\hayekn\Desktop\AR Reports\0MENACA Working File\AR Working File\1- Macro AR reporting\Delta\[test.xlsx](Dailyweek -1)'!A:B"
strLookup = "'C:\Users\hayekn\Desktop\AR Reports\0MENACA Working File\AR Working File\1- Macro AR reporting\Delta\[test.xlsx]Dailyweek -1'!A:B"
有什么想法吗? 谢谢
下面是我的整个代码:
Dailyweek = Workbooks("AR Reporting Tool.xlsm").Worksheets("Reports").Range("G30")
Dim sh As Worksheet, flg As Boolean
For Each sh In Worksheets
If sh.Name Like (Dailyweek - 1) Then flg = True: Exit For
Next
If flg = True Then
'MsgBox "Found!"
wbk4.Sheets("UAE").Activate
With wbk4.Sheets("UAE")
Set clDest = .Range("N2")
Set clLookup = .Range("A2")
strLookup = "'C:\Users\hayekn\Desktop\AR Reports\0MENACA Working File\AR Working File\1- Macro AR reporting\Delta\[UAE FM.xlsx](Dailyweek -1)'!A:B"
End With
If clLookup.Offset(1, 0) <> vbNullString Then
rws = Range(clLookup, clLookup.End(xlDown)).Rows.Count
Set clDest = clDest.Resize(rws, 1)
End If
clDest.Formula = "=IFERROR(VLOOKUP(" & clLookup.Address(False, False) & "," & strLookup & ",2,0),0)"
clDest.Value = clDest.Value ' Convert to value
else
msgbox "Doesnt exist"
end if
【问题讨论】:
-
需要更多代码。很难说你到底在做什么。