【发布时间】:2021-08-25 16:15:51
【问题描述】:
我有一个包含两个不同工作表的 Excel 文档。工作表 2 具有列标题名称和行标题名称。工作表 1 有一些列具有准确的标题名称和行标题名称,但它填充了数据。 enter image description here, enter image description here
我想创建一个宏,它会查看工作表 1 中的所有列/行标题,并在工作表 2 中找到它们对应的匹配项。找到匹配项后,我需要将 Sheet 列/行标题的条目复制到 sheet2 的匹配标题中。 Sheet2 中的某些条目将没有匹配项,并且将保持空白。 我希望它看起来像这样: enter image description here
到目前为止,这是我的代码,它适用于列标题,但我也不知道如何添加行标题。欢迎任何帮助:)
Sub CopyData()
Application.ScreenUpdating = False
Dim LastRow As Long, header As Range, foundHeader As Range, lCol As Long, srcWS As Worksheet, desWS As Worksheet
Set srcWS = Sheets("Sheet1")
Set desWS = Sheets("Sheet2")
LastRow = srcWS.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
lCol = desWS.Cells(3, Columns.Count).End(xlToLeft).Column
For Each header In desWS.Range(desWS.Cells(3, 2), desWS.Cells(3, lCol))
Set foundHeader = srcWS.Rows(2).Find(header, LookIn:=xlValues, lookat:=xlWhole)
If Not foundHeader Is Nothing Then
srcWS.Range(srcWS.Cells(3, foundHeader.Column), srcWS.Cells(LastRow, foundHeader.Column)).Copy desWS.Cells(4, header.Column)
End If
Next header
Application.ScreenUpdating = True
End Sub
【问题讨论】:
-
如果我的理解是正确的,您想复制具有与 Sheet1 匹配的标题(顶部和左侧)的 Sheet2 单元格?
-
@Vincent 没错。现在它只匹配顶部标题:)
-
在下面查看我的答案。如果你不知道怎么做,我最终可以写一段和平的代码:)