Excel VBA-尝试基于值将值复制到汇总表
在我的文件中,我有一个表格名称列表,与摘要页面A列中的值相对应。 我想从每个工作表拉取单元格B6中的值,并将其粘贴到汇总表中该客户端的相应行中。 我一直在尝试通过从列A的文本的值命名的工作表复制基于列A中的值来查找要复制和粘贴,但我得到一个“下标超出范围“工作表错误(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是表中第一个单元格的引用。
未经testing 。 我想这是你想要的。 而不是循环工作表,我把你的专栏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
你正在定义a
循环a
外部,所以i
被设置为0
。 我猜这不是你想要的,因为在这种情况下,7 +我毫无意义。 我将添加Debug.Print a
,以确保它被设置为正确的东西。