VBA参考取自存储在数组中的工作表,用于不同工作表中的单元格选择

时间:2015-09-02 10:06:48

标签: excel vba excel-vba

在工作表中,我已经存储了对C列中单元格地址的引用以及B列中的公式和A列中的工作表名称。我找到了一种修剪公式的方法,现在我想使用C列中的单元格地址使用A栏中给出的工作表参考名称替换我在给定地址中的不同工作表中的B列中修剪的公式。因此,如果A1表示工作表奥地利,B1具有公式Sum(A1:D1),则C1具有单元格引用A345,我希望能够在奥地利的A345中粘贴B1。

这是代码,它停止使用单元格引用来引用特定工作表中的单元格。出于某种原因,VBA不喜欢我这样做的事实。我一直在研究,因为我是初学者,我不知道该怎么做。非常感谢您的帮助。如果您在尝试解释时可以对代码进行更改,我将不胜感激。

Private Sub CommandButton1_Click()
Dim arr() As Variant
Dim puff As String
Dim puff1 As String
Dim n As Long
Dim i As Long
Dim str As String
Dim strjn As String
Dim Rng As Range


With Columns("C:C")
 .Replace What:="[Lisbon.xlsx.xlsm]", Replacement:=""
End With

With Columns("C:C")
 .Replace What:="'='", Replacement:="='"
End With

With Columns("B:B")
 .Replace What:="$", Replacement:=""
End With

Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Linkslist")
n = sh.Range("C2", sh.Range("C2").End(xlDown)).Rows.Count

arr = WorksheetFunction.Transpose(Range("B2:B" & n).Value)

For i = 2 To n
j = i - 1
Worksheets("LinksList").Activate
puff = Chr(34) & arr(j) & Chr(34)
Range("C" & i).Select
Selection.Copy
Worksheets(Range("A" & i).Value).Select
Range(Range(puff)).Select
Next

End Sub

1 个答案:

答案 0 :(得分:0)

所有你需要的是:

Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Linkslist")
n = sh.Range("C2", sh.Range("C2").End(xlDown)).Rows.Count

For i = 2 To n
    Worksheets(sh.Range("A" & i)).Range(sh.Range("C" & i)).Formula = "=" & sh.Range("B" & i)
Nexti