Excel VBA 在不同工作簿上匹配 Header 名称并将列复制到主工作簿

Excel VBA Match Header Name on Different Workbook and Copy Column to Master Workbook

我想要 运行 一个根据源工作簿中的 header 字符串查找列的宏,复制 header 下面的可见行,然后粘贴到不同的指定列位置的主工作簿。

我需要从大约 5 个特定列复制数据,例如 "Part Name"、"Part Number"、"Vendor" 等。我需要使用字符串值,因为我在主工作簿上粘贴值的位置有不同的 header。源工作簿上的 "Part Number" 可能会转换为主工作簿上的 "Part #"。

我试过下面的代码,它可以工作,但是速度很慢,而且这只适用于 1 列。

有什么想法可以清理这段代码并使其 运行 更流畅、更快速吗?

谢谢!

我试过调用一个优化函数来进行屏幕更新、自动计算等。

Sub Import()

Call Optimize

Dim source As String Dim dest As String

'Clears the Table Call CleanTheTable

source = Worksheets("Set-Up").Range("B11") '<=== Source workbook based on cell value

dest = Worksheets("Set-Up").Range("B8") '<=== Destination workbook based on cell value

'------------ Header Value to Look Up -------------     

Workbooks(source).Worksheets("Source Sheet").Range("Table1[Value to Look Up]").SpecialCells(xlCellTypeVisible).Copy _     Destination:=Workbooks(dest).Worksheets("INPUTS1").Range("A2")

End Sub

就我个人而言,我会完全避免使用复制方法。它慢得离谱,因为它也会复制格式。如果您不需要复制格式,那么我直接将单元格等同起来:

TargetSheet.cell.value = SourceSheet.cell.value

这通常比使用 .copy 方法快得多。

希望对您有所帮助。