【问题标题】:How can I extract data from database sheet and paste matched range in different sheets如何从数据库表中提取数据并将匹配的范围粘贴到不同的表中
【发布时间】:2021-06-05 19:15:25
【问题描述】:

我的工作簿中有多个工作表。我不想根据“A5:A116”中列出的范围内的工作表名称匹配从“组合”工作表中复制包含每个钻孔的 SPT 值的单元格,或者在最终数据输入到与钻孔 ID/单元格匹配的工作表之后可能更多“A5:A116”范围内的值并将其粘贴到 SPT 列下方。这必须通过所有工作表的循环过程来继续。还需要从匹配的单元格到要复制的范围的相对引用。在代码中,范围 D5:D16 必须是基于单元格值的相对引用的浮动范围。此外,粘贴范围将从matched.name表中SPT值下方的1个单元格开始我正在处理的代码如下,范围的相对引用似乎不起作用:

 Sub example()

 Dim wkSht As Worksheet

  For Each wkSht In Sheets

    For Each Cell In Sheets("Combine").Range("A5:A116")

        If Cell.Value = wkSht.Name Then

            On Error Resume Next

            Sheets("Combine").Range("D5:D16").Copy Destination:=wkSht.Range("D29:D52")
        End If

    Next Cell

 Next wkSht

End Sub

不同工作表中的数据提取

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    你的循环顺序不正确,你没有为cell声明变量,请尝试以下代码修改,它应该可以正常工作:

    Sub example()
    
    Dim wkSht As Worksheet
    Dim cell As Range
    
    For Each cell In Sheets("Combine").Range("A5:A116").Cells
    
        For Each wkSht In ThisWorkbook.Worksheets
        
            If cell.Value = wkSht.Name Then
           
                Sheets("Combine").Range(cell.Offset(0, 11), cell.Offset(30, 11)).Copy wkSht.Range("D29")
            End If
        
        Next wkSht
    
    Next cell
    
    End Sub
    

    【讨论】:

    • 而不是将范围固定为 D5:D16 我想要一个相对引用 = ActiveCell.Offset(0, 11).Range(Range(Cells(1, 1), Cells(11, 0) )).Address(False)).Select ... 复制在范围内(“A5:A116”)具有与匹配工作表名称的偏移量
    • 查看我编辑的动态范围复制粘贴答案,是否与您的预期输出相同?
    • 解决这个问题:Sub SPT() 将 wkSht 调暗为工作表 将单元格调暗为工作表中每个单元格的范围("Combine").Range("A5:A116").此工作簿中每个 wkSht 的单元格。工作表 If cell.Value = wkSht.Name Then cell.Select Range(ActiveCell.Offset(0, 11), ActiveCell.Offset(30, 11)).Select Selection.Copy wkSht.Select Range("D29").Select Selection .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End If Next wkSht Next cell End Sub
    • 你更新你的代码了吗?循环的顺序已经错了……
    • 你能给我你的电子邮件,以便我可以分享excel
    猜你喜欢
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 2019-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多