【发布时间】:2019-06-21 12:51:59
【问题描述】:
Excel VBA 范围公式类似于 Sheet2.Range("A1").value。 例如,您可以参考此地址并更改该单元格中的值。 现在我正在寻找的是通过使用两个单元格的内容来构建这个公式;一个单元格显示“Sheet2”,另一个显示“A1”。如何在公式中引用这两个单元格以使其工作方式相同?
我尝试了各种暗淡,现在最终没有出现错误,但没有达到预期的结果。当前公式仅返回 "Sheet2.Range("A1").value 而不是其内容。
Sub AddressInCells()
'This is just for one reference. In reailty there is a table of references to loop through.
'For this example cell A1 in Sheet2 = "Text to take to sheet1"
Dim SheetSel As String
Dim CellSel As String
Dim ReferSel As String
With Sheet1
SheetSel = Cells(1, 1).Value
CellSel = Cells(1, 2).Value
ReferSel = SheetSel & ".range(" & Chr(34) & CellSel & Chr(34) & ").value"
MsgBox ReferSel
Sheet1.Range("D1").Value = ReferSel 'Results in "Sheet2.range("A1").value
Sheet1.Range("D2").Value = Sheet2.Range("A1").Value 'Results in Text to take to sheet1'
End With
End Sub
预期结果是该公式以“通常”的方式工作。它现在只返回一个字符串。
【问题讨论】:
-
Sheet1.Range("D1").Value = Sheet1.Range("A1") & Sheet1.Range("B1")就这么简单。 -
如果您尝试构建公式字符串,则需要构建公式字符串,例如
"='Sheet Name'!$A$1"。所以,像ReferSel = "='" & SheetSel "'!" & CellSel & """