首页 文章

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

提问于
浏览
4

在我的文件中,我有一个工作表名称列表,与摘要页面中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是表中第一个单元格的引用 .

2 回答

  • 2

    Untested . 我想这就是你想要的 . 我没有循环工作表,而是放下了你的专栏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
    
  • 4

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

相关问题