用于引用单元格而不是单元格值的VBA语法

时间:2013-07-05 03:31:19

标签: vba reference

我希望VBA语法用于引用单元格而不是值。

我知道

Workbook().Worksheet().Cell().Value返回单元格的值。

我想知道单元格引用,类似于='[Vba Source Test.xlsx]Source'!$B$8

我尝试使用:

workbook().worksheet().cell().address 

但它只返回$B$8部分。

我将在这样的代码中使用它。

Workbook(Master).Worksheet(Summary).range(a1).value =  
workbook(Source).Worksheet(Data).cell(2,8).address

再次感谢能为您提供帮助的人。

1 个答案:

答案 0 :(得分:1)

您需要连接对象名称和&范围地址,带有适当的分隔符:

"='["Workbook(Source).Name & "]" & Worksheet(Data).Name & "'" & Cells(2,8).Address

因为您正在做的是为单元格的String分配Formula值,我认为这应该有用(但我没有测试过,所以可能会有拼写错误):

Dim myFormula as String
myFormula = "='["Workbook(Source).Name & "]" & Worksheet(Data).Name & "'!" & Cells(2,8).Address

Workbook(Master).Worksheet(Summary).range(a1).Formula = myFormula

您可以从中省略工作簿Name,我很确定只要您指定属于打开的工作簿的工作表,工作簿名称就是自动的。如果在插入公式时文件未打开,则必须包含工作簿名称。