Excel 将特定列从一张图纸复制到另一张图纸
我想将某些列(如A、B、H)从一个工作表复制到另一个工作表,并将此代码复制到一个模块中,但出现了“运行时错误9” 我正在处理55列453行的数据。如何将一个工作表中的备用列复制到另一个工作表中…示例Excel 将特定列从一张图纸复制到另一张图纸,excel,vba,Excel,Vba,我想将某些列(如A、B、H)从一个工作表复制到另一个工作表,并将此代码复制到一个模块中,但出现了“运行时错误9” 我正在处理55列453行的数据。如何将一个工作表中的备用列复制到另一个工作表中…示例 我只想要2010-2011年的专栏。在我的数据中,2010-2011年和2011-2012年是交替排列的,比如2010-2011年4月的一列和2011-2012年4月的下一列。下一列是2010-2011年5月的,下一列是2011-2012年5月的。依此类推。使用类似的语句,例如: Sub Butto
我只想要2010-2011年的专栏。在我的数据中,2010-2011年和2011-2012年是交替排列的,比如2010-2011年4月的一列和2011-2012年4月的下一列。下一列是2010-2011年5月的,下一列是2011-2012年5月的。依此类推。使用类似的语句,例如:
Sub Button1_Click()
Dim sh1 As Worksheet, sh2 As Worksheet
Dim col As Long, rng As Range, c As Range, cRng As Range, cRws As Long, col2 As Long
Set sh1 = Sheets("Sheet1")
Set sh2 = Sheets("Sheet2")
With sh1
col = .Cells(1, .Columns.Count).End(xlToLeft).Column
Set rng = .Range(.Cells(1, 1), .Cells(1, col))
For Each c In rng.Cells
If c Like "*2010-2011*" Then
cRws = .Cells(.Rows.Count, c.Column).End(xlUp).Row
Set cRng = .Range(.Cells(1, c.Column), .Cells(cRws, c.Column))
cRng.Copy sh2.Cells(1, sh2.Columns.Count).End(xlToLeft).Offset(, 1)
End If
Next c
End With
sh2.Columns("A:A").EntireColumn.Delete Shift:=xlToLeft
sh2.Cells.EntireColumn.AutoFit
End Sub
使用like语句,例如:
Sub Button1_Click()
Dim sh1 As Worksheet, sh2 As Worksheet
Dim col As Long, rng As Range, c As Range, cRng As Range, cRws As Long, col2 As Long
Set sh1 = Sheets("Sheet1")
Set sh2 = Sheets("Sheet2")
With sh1
col = .Cells(1, .Columns.Count).End(xlToLeft).Column
Set rng = .Range(.Cells(1, 1), .Cells(1, col))
For Each c In rng.Cells
If c Like "*2010-2011*" Then
cRws = .Cells(.Rows.Count, c.Column).End(xlUp).Row
Set cRng = .Range(.Cells(1, c.Column), .Cells(cRws, c.Column))
cRng.Copy sh2.Cells(1, sh2.Columns.Count).End(xlToLeft).Offset(, 1)
End If
Next c
End With
sh2.Columns("A:A").EntireColumn.Delete Shift:=xlToLeft
sh2.Cells.EntireColumn.AutoFit
End Sub
在运行该代码之前,必须打开工作簿“sheet1.xlsm”和“sheet2.xlsm”。“运行时错误9”的下标超出范围。这意味着:集合中没有此类项目。我怀疑:
工作簿
集合中没有“sheet1.xlsm”或“sheet2.xlsm”。您的问题暗示您正在一个工作簿中的不同工作表之间复制数据,但您的代码试图在工作簿(文件)之间复制。在运行该代码之前,必须打开工作簿“sheet1.xlsm”和“sheet2.xlsm”。“运行时错误9”的下标超出范围。这意味着:集合中没有此类项目。我怀疑:工作簿
集合中没有“sheet1.xlsm”或“sheet2.xlsm”。您的问题暗示您正在一个工作簿中的不同工作表之间复制数据,但您的代码尝试在工作簿(文件)之间复制数据