【发布时间】:2021-06-07 07:06:44
【问题描述】:
我必须根据单元格名称与工作表名称匹配从多个列中复制数据范围。但是,在某些匹配的工作表名称的情况下,我们有 30 个数据,在某些情况下,我们可能有 20 个数据或任何其他值,“A”列中每个 ID 的数据范围是不同的。我当前的代码使我能够从“组合”工作表中提取数据到具有匹配工作表名称的模板工作表。我如何使代码动态并根据 A 列中更改的工作表名称提取数据,而不是使用匹配范围的偏移量提取 30 个数据(每个钻孔名称之后有一些空白单元格,直到“A”列中的下一个名称需要考虑用于开发 VBA 代码)并从 M 和 S 列复制与该名称对应的数据,并根据匹配的工作表名称粘贴到 E 和 G 列的模板工作表中。目前我只能从一列中提取数据,代码需要动态更新:
Sub SPT()
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, 12), cell.Offset(29, 12)).Copy wkSht.Range("G22")
End If
Next wkSht
Next cell
End Sub
【问题讨论】:
-
所以如果总是从
main sheet复制12 行,copy paste的问题是什么?因为即使包含空白值,复制同一行也不会有任何问题。 -
行复制选项必须相对于带有工作表名称的单元格 A 值是动态的。特定偏移量处的相应列也必须根据范围内的工作表名称匹配复制到不同的工作表中,现在我想从多列而不是一列复制数据。