在Excel中select一个列,但从所需的位置

我有两个工作簿,我想要的是从一个Excel复制一列到另一个。 在列中,我希望从头下方select数据直到底部。因为我的头USER是在B14的某处,所以我使用.Find(What:=“User”)来查找头并将其存储到一个单元格。

但是当我把它复制到另一个excel中时,它也是selectB1到B13,这是不需要的。

我只想从头部到底部(B14到B80)select数据,并将其粘贴到另一个Excel中作为A1到A66。

Dim x As Workbook Dim y As Workbook Dim ws As Worksheet Set x = Workbooks.Open("C:\file1.xls") Dim aCell As Range Set aCell = x.Sheets("file").Range("B1:B1000").Find(What:="User", LookIn:=xlValues,LookAt:=xlWhole, _ MatchCase:=False, SearchFormat:=False) Set y = Workbooks.Open("C:\file2.xls) aCell.EntireColumn.Copy y.Sheets("abc").Range("A1:A1000").PasteSpecial End Sub 

如果您不想复制EntireColumn ,只需复制您感兴趣的范围:

 Dim x As Workbook Dim y As Workbook Dim ws As Worksheet Dim aCell As Range Set x = Workbooks.Open("C:\file1.xls") With x.Sheets("file") Set aCell = .Range("B1:B1000").Find(What:="User", _ LookIn:=xlValues, _ LookAt:=xlWhole, _ MatchCase:=False, _ SearchFormat:=False) 'Check that header exists If aCell Is Nothing Then Exit Sub Set y = Workbooks.Open("C:\file2.xls") .Range(aCell, .Cells(.Rows.Count, aCell.Column).End(xlUp)).Copy _ y.Sheets("abc").Range("A1") End With