在不带 ' ' 的公式中输入 Range.Address

Input Range.Address into a formula without ' '

如果有人能帮助我,我将不胜感激,

有 2 个问题

问题一:

我有一个 VBA 应该提示一个输入框,允许用户 select 一个单元格和 return 地址到一个 vlookup 公式。但是,单元格将 return 带有地址

的 ' ' 符号

这是实际结果=IFNA(VLOOKUP('J1242','D:\Users\[file.xlsm]Working'!$A:$BG,15,0),"")

这就是我想要的=IFNA(VLOOKUP(J1242,'D:\Users\[file.xlsm]Working'!$A:$BG,15,0),"")

    Set myCell = Application.InputBox( _
        prompt:="Select a cell", Type:=8)
        
        MsgBox myCell.Address
        
        ActiveCell.FormulaR1C1 = _
            "=IFNA(VLOOKUP(" & myCell.Address(RowAbsolute:=False, ColumnAbsolute:=False) & ",'D:\Users\[file.xlsm]Working'!C1:C59,15,0),"""")"
        ActiveCell.Offset(1, 0).Range("A1").Select

问题2:

为什么会这样 return =IFNA(VLOOKUP('J1242','D:\Users\[file.xlsm]Working'!$A:$BG,15,0),"")

当我的代码显示时:

"=IFNA(VLOOKUP(" & myCell.Address(RowAbsolute:=False, ColumnAbsolute:=False) & ",'D:\Users\[file.xlsm]Working'!C1:C59,15,0),"""")"
    ActiveCell.Offset(1, 0).Range("A1").Select

我使用宏记录器输入公式。

问题是这个returns一个A1格式的地址

myCell.Address(RowAbsolute:=False, ColumnAbsolute:=False)

但是您的公式 .FormulaR1C1 是 R1C1 格式。

因此,您需要使用 A1 格式的 .Formula 而不是 .FormulaR1C1。它们都需要在格式上匹配。