我正在尝试使用 VBA 在单元格中将 VLOOKUP 作为字符串编写。这意味着我不希望结果作为一个值出现在单元格中,而是我想要整个 VLOOKUP 表达式(对于这个例子:"VLOOKUP(C6,'[path_to_file.xlsm]OTD Table!$B:$F,4,0)")
。挑战在于 VLOOKUP 的范围参数是一个路径的串联,(path_to_file.xlsm)
即用户使用 GetOpenFilename 和一个字符串进行选择,该字符串指定查找表所在的选项卡("OTD Table!$B:$F,4,0").
我得到的问题非常有趣:
当我在 Msgbox 中打印我的表达式时,表达式正确显示。但是,当我将其写入单元格时,路径神秘地出现错误。
Sub macro()
dim data_file_new as String
data_file_new = CStr(Application.GetOpenFilename(FileFilter:="Excel Workbooks (*.xls*),*.xls*", Title:="Select new data file")) ' The user selects the file
str_ = "=VLOOKUP(C6," & "'[" & data_file_new & "]OTD Table!$B:$F,4,0)" ' This will display the expression correctly
cells(1,10)="=VLOOKUP(C6," & "'[" & data_file_new & "]OTD Table!$B:$F,4,0)"' This will not display the same thing as in the messagebox above
end Sub
我希望你们中的一个人能理解这一点!