Excel 在激活图纸VBA之后从多个图纸复制特定列
我正在尝试编写一个VBA代码,它选择我所在的活动工作表之后每个工作表的第一列(这将更改),并复制到新创建的工作表中,该工作表将显示在活动工作表之后 下面的代码不起作用,但希望它能让我了解我想要实现的目标Excel 在激活图纸VBA之后从多个图纸复制特定列,excel,vba,Excel,Vba,我正在尝试编写一个VBA代码,它选择我所在的活动工作表之后每个工作表的第一列(这将更改),并复制到新创建的工作表中,该工作表将显示在活动工作表之后 下面的代码不起作用,但希望它能让我了解我想要实现的目标 Dim sht As ActiveSheet Sheets(after.sht).Columns("1").copy 'I want to copy column one from every sheet after the current sheet I'm on Sheets.Add af
Dim sht As ActiveSheet
Sheets(after.sht).Columns("1").copy 'I want to copy column one from every sheet after the current sheet I'm on
Sheets.Add after:=sht.paste 'then paste into a new sheet which appears after the Active sheet I started on
选项显式
子复制列()
将源设置为工作表
将目标设置为工作表
持续时间一样长
Application.ScreenUpdating=False
'检查工作簿中是否已存在“主”工作表
用于此工作簿中的每个源。工作表
如果Source.Name=“Master”,则
MsgBox“主工作表已存在”
出口接头
如果结束
下一个
'在工作簿中插入新工作表
设置目的地=工作表。添加(之后:=工作表(“主”))
'重命名工作表
Destination.Name=“Master”
'在工作簿中的工作表中循环
用于此工作簿中的每个源。工作表
如果Source.Name“Master”和Source.Name“Main”,那么
'从目标工作表中查找最后一列
Last=Destination.Range(“A1”).SpecialCells(xlCellTypeLastCell).列
如果Last=1,则
'粘贴目标工作表中的数据
Source.UsedRange.Copy Destination.Columns(最后一个)
其他的
Source.UsedRange.Copy Destination.Columns(Last+1)
如果结束
如果结束
下一个
自动拟合
Application.ScreenUpdating=True
端接头
尝试一下:
Dim flagSh As Worksheet
Dim newSh As Worksheet
Dim i As Long
With ThisWorkbook
If ActiveSheet.Index = .Worksheets.Count Then Exit Sub
Set flagSh = ActiveSheet
.Worksheets.Add , flagSh
Set newSh = ActiveSheet
For i = .Worksheets.Count To newSh.Index + 1 Step -1
.Worksheets(i).Columns(1).Copy
newSh.Columns(1).Insert Shift:=xlToRight
Next
Application.CutCopyMode = False
End With
希望这能帮助你开始
Dim flagSh As Worksheet
Dim newSh As Worksheet
Dim i As Long
With ThisWorkbook
If ActiveSheet.Index = .Worksheets.Count Then Exit Sub
Set flagSh = ActiveSheet
.Worksheets.Add , flagSh
Set newSh = ActiveSheet
For i = .Worksheets.Count To newSh.Index + 1 Step -1
.Worksheets(i).Columns(1).Copy
newSh.Columns(1).Insert Shift:=xlToRight
Next
Application.CutCopyMode = False
End With