从已关闭文件Bank.xlsx执行VLOOKUP无法取数,请求排查代码问题
代码问题排查及修复
核心问题1:路径拼接缺少文件分隔符
你的MyPath是文件夹路径,但末尾没有加\,导致拼接后完整路径变成了C:\1.Martin\18.SAP\Bank Test[Bank.xlsx],Excel无法识别这个错误路径。必须在文件夹路径和文件名之间加上\分隔符。
核心问题2:冗余的当前工作表引用
公式里的'" & wsThis.Name & "'!D2完全没必要,因为公式本身就写在当前工作表的AA2单元格,直接用D2即可,额外加工作表名反而可能因为格式问题引发错误。
修复后的代码
Sub PrepareForPayment() Dim MyPath As String Dim wbThis As Workbook Dim wsThis As Worksheet Set wbThis = ThisWorkbook Set wsThis = ActiveSheet MyPath = "C:\1.Martin\18.SAP\Bank Test\" ' 末尾添加\ ' 简化查找值引用,修正路径拼接 wsThis.Range("AA2").Formula = "=VLOOKUP(D2,'" & MyPath & "[Bank.xlsx]Sheet1'!A:C,3,0)" End Sub
额外注意事项
- 确保
Bank.xlsx确实存在于C:\1.Martin\18.SAP\Bank Test文件夹下,文件名和工作表名(Sheet1)完全匹配,包括大小写(部分系统下大小写不敏感,但最好严格一致)。 - 如果工作表名包含空格或特殊字符,需要用单引号包裹,比如
'Sheet 1',但你的Sheet1没问题。 - 若修复后仍无法获取数据,检查D2的值是否在Bank.xlsx的A列中存在完全匹配项(VLOOKUP的精确匹配要求完全一致,包括空格、格式)。
内容的提问来源于stack exchange,提问作者Martin
相关产品推荐
相关产品推荐

