Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 在excel中从所需位置选择列_Vba_Excel - Fatal编程技术网

Vba 在excel中从所需位置选择列

Vba 在excel中从所需位置选择列,vba,excel,Vba,Excel,我有两本工作簿,我想把一列从一个excel复制到另一个excel。 在该列中,我想从标题下方到底部选择数据 因为,我的头USER位于B14的某个位置,所以我使用.Find(What:=“USER”)查找头并将其存储到aCell中 但当我将其复制到另一个excel中时,它也会选择B1到B13,这不是必需的 我只想选择从标题到底部(B14到B80)的数据,并将其粘贴到另一个excel中,如A1到A66 Dim x As Workbook Dim y As Workbook Dim ws As W

我有两本工作簿,我想把一列从一个excel复制到另一个excel。 在该列中,我想从标题下方到底部选择数据 因为,我的头USER位于B14的某个位置,所以我使用.Find(What:=“USER”)查找头并将其存储到aCell中

但当我将其复制到另一个excel中时,它也会选择B1到B13,这不是必需的

我只想选择从标题到底部(B14到B80)的数据,并将其粘贴到另一个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

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

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

与其复制整个列(当然包括第1行到第13行),为什么不直接复制
x.Sheets(“file”).Range(aCell,x.Sheets(“file”).Cells(x.Sheets(“file”).rows.Count,aCell.column).End(xlUp))
?为了更容易操作,您还应该
将sht设置为工作表的颜色
设置sht=x.Sheets(“file”)