Excel 查找单元格&;选择/复制从活动单元格到最后一行(包括空格)

Excel 查找单元格&;选择/复制从活动单元格到最后一行(包括空格),excel,vba,Excel,Vba,我尝试使用列标题名称查找列,然后从列中选择所有数据(包括空白单元格)并粘贴到另一个范围。 目前我只能复制到第一个空白单元格。我在黑板上看到过类似的问题,但我看到的解决方案是从知道它首先在哪一列的角度出发的&然后从工作表的底部找到最后一行 Workbooks("PS & Config - Actuals & FC.xlsm").Worksheets(2).Range("A3").CurrentRegion.Find(What:="FFA Name").Select Range(Ac

我尝试使用列标题名称查找列,然后从列中选择所有数据(包括空白单元格)并粘贴到另一个范围。

目前我只能复制到第一个空白单元格。我在黑板上看到过类似的问题,但我看到的解决方案是从知道它首先在哪一列的角度出发的&然后从工作表的底部找到最后一行

Workbooks("PS & Config - Actuals & FC.xlsm").Worksheets(2).Range("A3").CurrentRegion.Find(What:="FFA Name").Select
Range(ActiveCell, ActiveCell.End(xlDown)).Select
Range("A3").Select
ActiveSheet.Paste

要查找列,请使用与列标题名称匹配的项。拥有该列后,将目标范围中的值设置为与该列相同。在VBA中选择、复制和粘贴是不必要的,因为这些值本身可以移动,而且会增加负载

我再也没有办公室了,所以我用内存运行这个。我希望有帮助

dim wb as workbook, ws1, ws2 as worksheet, myCol, myRow as long

set wb=excel.thisworkbook 'assuming this code goes in that workbook
set ws1=wb.sheets(2) 'set variables

myCol=worksheetfunction.match("FFA Name",ws1.[a1:zz1],0) 'search through 1st row
myRow=ws1.[a3].currentregion.rows.count 'grab last row containing data in this set

'do not select, nor copy and paste, if it can all be done with VBA. This can.

set ws2=wb.sheets.add 'a little rusty on this line, you can get the method from the macro recorder
ws2.cells(1,1).resize(myrow).value=ws1.cells(1,myCol).resize(myrow).value

当存在空白单元格时,原始代码停止的原因是.end()方法模拟按下结束键,然后按下箭头,箭头指向第一个/最后一个包含数据的连续单元格。

范围(ActiveCell,ActiveCell.End(xlDown))。选择