试图复制和粘贴一些可变数据

我正在处理一个有很多macros的现有excel文件,并且想要从5张不同的图表复制和粘贴可变数据到5张其他图纸,而不复制空白单元格。 这是我到目前为止,并给我运行时错误1004:

Sub Macro1() Sheets("Hulp_IO").Select Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("IO").Select Range("B2").Select ActiveSheet.Paste Sheets("Hulp_Modbus_PMSX_Lees_Tags").Select Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Application.CutCopyMode = False Selection.Copy Sheets("Modbus_Lees_Tags_PMSX").Select Range("A2").Select ActiveSheet.Paste Sheets("Hulp_Modbus_PMSX_Schrijf_Tags").Select Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Application.CutCopyMode = False Selection.Copy Sheets("Modbus_Schrijf_Tags_PMSX").Select Range("A2").Select ActiveSheet.Paste Sheets("Hulp_Modbus_Pakscan_Lees_Tags").Select Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Application.CutCopyMode = False Selection.Copy Sheets("Modbus_Lees_Tags_PackScan").Select Range("A2").Select ActiveSheet.Paste Sheets("Hulp_Modbus_Pakscan_Schrijf_Tag").Select Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Application.CutCopyMode = False Selection.Copy Sheets("Modbus_Schrijf_Tags_PackScan").Select Range("A2").Select ActiveSheet.Paste Sheets("Start").Select End Sub 

这里是你的代码大部分审查,因为.Select命令是真正的资源 – 贪婪,现在它更可读!

我不知道你的代码有哪些错误,但是这是一个重要的信息,所以即使这能解决你的问题,也要添加它! ;)

这里是代码:

 Sub Nito_Nascimento() Dim WsFrom As Worksheet, _ WsTo As Worksheet Set WsFrom = Sheets("Hulp_IO") Set WsTo = Sheets("IO") WsFrom.Range("A1", WsFrom.Range("A" & WsFrom.Rows.Count).End(xlUp)).Copy WsTo.Range("B2").PasteSpecial _ Paste:=xlPasteValues, _ Operation:=xlNone, _ SkipBlanks:=True, _ Transpose:=False Set WsFrom = Sheets("Hulp_Modbus_PMSX_Lees_Tags") Set WsTo = Sheets("Modbus_Lees_Tags_PMSX") Application.CutCopyMode = False WsFrom.Range("A1", WsFrom.Range("A" & WsFrom.Rows.Count).End(xlUp)).Copy WsTo.Range("A2").PasteSpecial _ Paste:=xlPasteValues, _ Operation:=xlNone, _ SkipBlanks:=True, _ Transpose:=False Set WsFrom = Sheets("Hulp_Modbus_PMSX_Schrijf_Tags") Set WsTo = Sheets("Modbus_Schrijf_Tags_PMSX") Application.CutCopyMode = False WsFrom.Range("A1", WsFrom.Range("A" & WsFrom.Rows.Count).End(xlUp)).Copy WsTo.Range("A2").PasteSpecial _ Paste:=xlPasteValues, _ Operation:=xlNone, _ SkipBlanks:=True, _ Transpose:=False Set WsFrom = Sheets("Hulp_Modbus_Pakscan_Lees_Tags") Set WsTo = Sheets("Modbus_Lees_Tags_PackScan") Application.CutCopyMode = False WsFrom.Range("A1", WsFrom.Range("A" & WsFrom.Rows.Count).End(xlUp)).Copy WsTo.Range("A2").PasteSpecial _ Paste:=xlPasteValues, _ Operation:=xlNone, _ SkipBlanks:=True, _ Transpose:=False Set WsFrom = Sheets("Hulp_Modbus_Pakscan_Schrijf_Tag") Set WsTo = Sheets("Modbus_Schrijf_Tags_PackScan") Application.CutCopyMode = False WsFrom.Range("A1", WsFrom.Range("A" & WsFrom.Rows.Count).End(xlUp)).Copy WsTo.Range("A2").PasteSpecial _ Paste:=xlPasteValues, _ Operation:=xlNone, _ SkipBlanks:=True, _ Transpose:=False Application.CutCopyMode = False Sheets("Start").Activate Set WsFrom = Nothing Set WsTo = Nothing End Sub