VBA目录引用

我试图引用另一个工作簿的数据,我发现(纠正我,如果我错了)直接插入工作表公式的单元格( 见下面的代码 )是唯一的方法来做到这一点,而实际上打开工作簿我'参考。 现在我的困境是我试图使这个代码的目录部分variables,使用户可以做这样的事情:

Path = Application.GetOpenFilename 

现在path被固定在'S:\ SN \ SN \ 2015-S [2015SNL.xlsx] 2015'

 Sub Formulation() Application.ScreenUpdating = False Sheets("Data").Activate Range("A1").FormulaR1C1 = _ "=IF(ISBLANK('S:\SN\SN\2015-S\[2015SNL.xlsx]2015'!RC), _ ""-"",'S:\SN\SN\2015-S\[2015SNL.xlsx]2015'!RC)" Application.ScreenUpdating = True End Sub 

这也是参考一个具体的表格,你可以看到… 2015'!

有任何想法吗? 先进的感谢您的帮助

要将variables添加到VA中的string中,您需要closures引号,并按照&符号: &

像这样:

Range("A1").FormulaR1C1 = "=IF(ISBLANK('" & Path & "2015'!RC),""-"",'" & Path & "2015'!RC)"

确保在引号,和号和variables名称之间添加空格。

一个不容易出错的表单是

 Dim dirn as String, tabn as String, refs as String dirn = "S:\SN\SN\2015-S\" ' Change this line tabn = dirn & "[2015SNL.xlsx]2015" refs = "'" & tabn &"'!" & "RC" Dim ws as Worksheet Set ws = ActiveWorkbook.Sheets("Data") ws.Range("A1").FormulaR1C1 = "=IF(ISBLANK(" & refs & "),""-""," & refs & ")" 

记住要限定你的Range ,看看这个 。