Excel VBA-尝试根据值将值复制到摘要表

时间:2016-04-29 15:30:32

标签: excel vba excel-vba

在我的文件中,我有一个工作表名称列表,与摘要页面中A列中的值相对应。我想从每个工作表中提取单元格B6中的值,并将其粘贴到摘要表中该客户端的相应行中。我一直试图根据A列中的值来查找要复制和粘贴的内容,方法是从使用A列文本值命名的工作表中复制,但我得到的是& #34;下标超出范围"工作表上的错误(a).Range(" B6")。复制问题。代码如下:

Sub columnfiller()
Dim i As Integer

Dim a As String

a = Worksheets(2).Cells(7 + i, "A").Text

For i = 3 To Worksheets.Count
Worksheets(a).Range("B6").Copy
ActiveSheet.Paste Destination:=Worksheets(2).Cells(7 + i)
Next i
End Sub

7 + i是对表格中第一个单元格的引用。

2 个答案:

答案 0 :(得分:4)

<强>未测试即可。我想这就是你想要的。我没有循环工作表,而是将A列循环下来。

Sub columnfiller()

Dim lastRow As Long
Dim summaryWs As Worksheet
Dim ws As String

Set summaryWs = WorkSheets(2)

With summaryWs

    lastRow = .Cells(.Rows.count, "A").End(xlUp).Row

    For I = 7 To lastRow 'you didn't initiate i so guessing first row is 7

        ws = .Cells(I, 1)
        .Cells(I, 2) = WorkSheets(ws).Range("B6") 'not sure if you need formatting. this does not have formatting

    Next

End With

End Sub

答案 1 :(得分:2)

您在循环之外定义a,因此i设置为0。我猜这不是你想要的,因为在那种情况下做7 + i是没有意义的。我会添加Debug.Print a以确保它被设置为正确的东西。