【问题标题】:Excel VBA Match Header Name on Different Workbook and Copy Column to Master WorkbookExcel VBA匹配不同工作簿上的标题名称并将列复制到主工作簿
【发布时间】:2019-09-19 13:53:46
【问题描述】:

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

我需要从大约 5 个特定列中复制数据,例如“零件名称”、“零件编号”、“供应商”等。我需要使用字符串值,因为我在主工作簿上粘贴值的位置有不同的标题。源工作簿上的“Part Number”可能会转换为 Master 工作簿上的“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

【问题讨论】:

    标签: excel vba copy-paste


    【解决方案1】:

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

    TargetSheet.cell.value = SourceSheet.cell.value

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

    我希望这会有所帮助。

    【讨论】:

    • 您好,谢谢您的回复!这似乎是一条可能的探索途径。如何根据列标题名称指定目标单元格?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多