【问题标题】:How to pass an excel filename in an excel formula in vba?如何在vba的excel公式中传递excel文件名?
【发布时间】:2016-09-16 11:20:19
【问题描述】:

我正在尝试制作一个简单的 vlookup 宏,它从另一个工作簿获取数据并执行 vlookup 以及自动填充

我要求用户输入以选择 vlookup 将从中查找单元格的文件(目标文件)

问题:

我可以从路径中提取文件名,但是如果我尝试直接在公式中传递变量(excel 工作簿名称),它就不起作用

同样需要指导

到目前为止我的代码是这样的:

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

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    您当前正在将字符串“文件名”传递给公式。您只需要将变量连接到公式中。

    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],'[" & Filename & "]3G_HW_BDR'!C4:C5,2,0)"
    

    每当您在字符串中包含变量时,您都需要使用 & 符号将其连接到字符串中。

    【讨论】:

      【解决方案2】:

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-24
        • 1970-01-01
        • 1970-01-01
        • 2014-12-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多