如何在vba中传递excel公式中的excel文件名?
我试图制作一个简单的vlookup宏,它从另一个工作簿获取数据,并与自动填充一起执行vlookup 我请求用户输入以选择vlookup将从中查找单元格的文件(目标文件) 问题: 我可以从路径中提取文件名,但是如果我试图直接在公式中传递变量(excel工作簿名称),则无法工作 同样需要指导 到目前为止,我的代码是:如何在vba中传递excel公式中的excel文件名?,vba,excel,Vba,Excel,我试图制作一个简单的vlookup宏,它从另一个工作簿获取数据,并与自动填充一起执行vlookup 我请求用户输入以选择vlookup将从中查找单元格的文件(目标文件) 问题: 我可以从路径中提取文件名,但是如果我试图直接在公式中传递变量(excel工作簿名称),则无法工作 同样需要指导 到目前为止,我的代码是: Sub Macro1() ' ' Macro1 Macro ' pdf ' ' Keyboard Sh
Sub Macro1()
'
' Macro1 Macro
' pdf
'
' Keyboard Shortcut: Ctrl+w
'
Dim fNameAndPath As Variant
fNameAndPath = Application.GetOpenFilename(FileFilter:="Excel Files (*.XLSX), *.XLSX", Title:="Select File To Be Opened")
If fNameAndPath = False Then Exit Sub
Workbooks.Open Filename:=fNameAndPath
Filename = Right(fNameAndPath, Len(fNameAndPath) - InStrRev(fNameAndPath, "\"))
'MsgBox Mid(filname, 1, InStr(filname, ".") - 1)
Windows("PDF_Avatar_Geltool.xlsm").Activate
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-1],'[Filename]3G_HW_BDR'!C4:C5,2,0)"
Windows("3G_Allcells.xlsx").Activate
Windows("3G_Allcells.xlsx").Activate
End Sub
您当前正在将字符串“filename”传递给公式。您只需要将变量连接到公式中
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],'[" & Filename & "]3G_HW_BDR'!C4:C5,2,0)"
无论何时在字符串中包含变量,都需要使用符号将其连接到字符串中。您当前正在将字符串“filename”传递给公式。您只需要将变量连接到公式中
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],'[" & Filename & "]3G_HW_BDR'!C4:C5,2,0)"
每当在字符串中包含变量时,都需要使用符号将其连接到字符串中。Range()。Address(External:=True)
返回可在公式中使用的有效外部地址
Dim fNameAndPath As Variant
fNameAndPath = Application.GetOpenFilename(FileFilter:="Excel Files (*.XLSX), *.XLSX", Title:="Select File To Be Opened")
If fNameAndPath = False Then Exit Sub
With Workbooks.Open(Filename:=fNameAndPath)
With .Worksheets("3G_HW_BDR")
Windows("PDF_Avatar_Geltool.xlsm").Activate
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-1]," & .Range("C4:C5").Address(Extrenal:=True) & ",2,0)"
End With
End With
Windows("3G_Allcells.xlsx").Activate
Range().Address(外部:=True)
返回可在公式中使用的有效外部地址
Dim fNameAndPath As Variant
fNameAndPath = Application.GetOpenFilename(FileFilter:="Excel Files (*.XLSX), *.XLSX", Title:="Select File To Be Opened")
If fNameAndPath = False Then Exit Sub
With Workbooks.Open(Filename:=fNameAndPath)
With .Worksheets("3G_HW_BDR")
Windows("PDF_Avatar_Geltool.xlsm").Activate
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-1]," & .Range("C4:C5").Address(Extrenal:=True) & ",2,0)"
End With
End With
Windows("3G_Allcells.xlsx").Activate