Excel 复制选择性列数据,直到列1中的数据结束
我目前正在使用以下代码将粘贴数据从文件“源”复制到文件“目标”。它选择行,直到数据在第1列结束。 但是,目前选择了从A到AE的所有列,但是我希望选择像A、F、K、AA这样的选择性列。 我知道“wb.ActiveSheet.Range(“A2:AE”&N.Copy”)中的代码需要更改,但不确定语法。 有人能帮我吗?提前感谢你的帮助Excel 复制选择性列数据,直到列1中的数据结束,excel,vba,Excel,Vba,我目前正在使用以下代码将粘贴数据从文件“源”复制到文件“目标”。它选择行,直到数据在第1列结束。 但是,目前选择了从A到AE的所有列,但是我希望选择像A、F、K、AA这样的选择性列。 我知道“wb.ActiveSheet.Range(“A2:AE”&N.Copy”)中的代码需要更改,但不确定语法。 有人能帮我吗?提前感谢你的帮助 Dim wb As Workbook Set wb = ActiveWorkbook Dim N As Long Dim LastRow As Long N = Ce
Dim wb As Workbook
Set wb = ActiveWorkbook
Dim N As Long
Dim LastRow As Long
N = Cells(2, 1).End(xlDown).Row
wb.ActiveSheet.Range("A2:AE" & N).Copy
Set y = Workbooks.Open("C:\Desktop\Destination.xlsx")
y.Activate
y.Sheets("Data").Select
y.Sheets("Data").Activate
For Each Cell In y.Sheets("Data").Columns(1).Cells
If Len(Cell) = 0 Then Cell.Select: Exit For
Next Cell
Selection.PasteSpecial Paste:=xlPasteValues
Application.DisplayAlerts = False
ActiveWorkbook.Close True
Application.DisplayAlerts = True
Application.CutCopyMode = False
您可以使用
应用程序.Union
组合不同列的范围(从第2行到N
)
另外,您可以使用LastRow=.Cells(.Rows.Count,“A”).End(xlUp).Row+1
,而不是在y.Sheets(“数据”).Columns(1.Cells)中循环查找空的单元格
我用wb.Sheets(“Sheet1”)添加了2个,以完全限定所有变量和嵌套在下面的范围
代码
Option Explicit
Sub CopyColumns()
Dim wb As Workbook
Dim Y As Workbook
Dim N As Long
Dim LastRow As Long
Dim CopyRng As range
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Set wb = ActiveWorkbook
' you need to specify the sheet, otherwise it will take the Active Sheet
With wb.Sheets("Sheet1") ' <-- modify to your sheet's name
N = .Cells(.Rows.Count, "A").End(xlUp).Row ' <-- get last row from Column "A", skips blank cells in te middle
' set the range to Columns A, F, K, AA
Set CopyRng = Application.Union(.Range("A2:A" & N), .Range("F2:F" & N), .Range("K2:K" & N), .Range("AA2:AA" & N))
End With
Set Y = Workbooks.Open("C:\Desktop\Destination.xlsx")
With Y.Sheets("Data")
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row + 1 '<-- get first empty row at Column A to paste at
CopyRng.Copy
.Range("A" & LastRow).PasteSpecial xlPasteValues
End With
Y.Close True
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.CutCopyMode = False
End Sub
选项显式
子复制列()
将wb设置为工作簿
将Y作为工作簿
长
最后一排一样长
暗拷贝As范围
Application.DisplayAlerts=False
Application.ScreenUpdating=False
设置wb=ActiveWorkbook
'您需要指定工作表,否则它将占用活动工作表
附工作分解表(“表1”)'