VBA脚本复制下一个工作表中的列并粘贴到第一个工作表中的下一个空列
我需要为以下情况写一个简短的VBA脚本。 工作簿包含多个工作表。 第一张是汇总表。 汇总表后面有不规则数量的表单,其中包含我想要在汇总表上显示的信息。 信息总是在“B栏”中。 该脚本应复制每张纸的“B列”,并将其粘贴到汇总表中的下一个空列。 换句话说,它应该复制“工作表2”中的“B列”并将其粘贴到“工作表1”中的下一个空列,然后复制“工作表3”中的“B列”并再次粘贴到下一个空列“Sheet 1”等
所有的帮助表示赞赏,谢谢!
您将需要声明一个Worksheet
typesvariables(例如Dim ws As Worksheet
),以循环一个For Each ws In Activeworkbook.Worksheets
… Next ws
。 那么你需要定义哪张纸是主纸。 我再次推荐一个Worksheet
,例如Set wsMain = ActiveWorkbook.Worksheets("Summary")
。 要完成它使用一个
wsMain.Cells.Find("*",SearchOrder:=xlByColumns,SearchDirection:=xlPrevious).Column
告诉您汇总表中上次使用的列的索引。 你可以把它存储在一个variables中,然后在你的循环中增加一个,或者在你的循环中运行它(不是资源节约,但是关心这个毫秒)。
你可以通过索引引用列,在你的情况下将是ws.Cells.Columns(2)
和wsMain.Cells.Columns(LastColumn + 1)
。
玩得开心写你的代码,希望我能帮上忙!
这工作:
Sub NextWsToNextEmptyColumn() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets ws.Cells.Columns(2).Copy Sheets(1).Cells(1, Columns.Count).End(xlToLeft).Offset(, 1) Next ws End Sub