【发布时间】:2021-03-16 06:57:55
【问题描述】:
所以我有一张包含信息的表格(大约 200 列),我想将其移至新表格。这个想法是我需要在每个新工作表中的 A 列,然后是 B 列,然后下一张表再次列 A + C 列,依此类推,直到最后一列。有人可以帮我解决这个问题吗?
Sub copyColumns()
Columns("A:B").Select
Selection.Copy
Sheets.Add After:=ActiveSheet
ActiveSheet.Paste
Sheets("Sheet1").Select
Columns("C:C").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet4").Select
Columns("C:C").Select
ActiveSheet.Paste
Sheets.Add After:=ActiveSheet
Sheets("Sheet1").Select
Range("A:B,D:D").Select
Range("D1").Activate
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet5").Select
ActiveSheet.Paste
End Sub
【问题讨论】:
-
Columns("A:B").Select Selection.Copy Sheets.Add After:=ActiveSheet ActiveSheet.Paste Sheets("Sheet1").Select Columns("C:C").Select Application .CutCopyMode = False Selection.Copy Sheets("Sheet4").Select Columns("C:C").Select ActiveSheet.Paste Sheets.Add After:=ActiveSheet Sheets("Sheet1").Select Range("A:B, D:D").Select Range("D1").Activate Application.CutCopyMode = False Selection.Copy Sheets("Sheet5").Select ActiveSheet.Paste End Sub
-
这是迄今为止我使用宏编写的代码。问题是如何让它自动执行到最后一列?
-
所以您需要大约 200 张新床单?
-
请不要像这样在 cmets 中添加代码。编辑您的原始问题,使您的帖子易于阅读,以便从社区获得一些帮助。
-
请注意,工作簿中的最大工作表数为 255。无论如何,您应该重新考虑在工作簿中拥有这么多工作表是否可行。请edit您的问题并包括所有这些的目的。我认为你的方法已经走错了。