我尝试使用列标题名称查找列,然后从该列中选择所有数据(包括空白单元格)并粘贴到另一个范围中。
目前,我只能复制到第一个空白单元格。我在板上看到过类似的问题,但是我看到的解决方案是从知道它在第一列然后从工作表底部查找最后一行的角度出发。
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
答案 0 :(得分:0)
要查找列,请使用“匹配列标题名称”。拥有该列后,将目标范围内的值设置为与该列相同。在VBA中进行选择,复制和粘贴是不必要的,因为值本身可以移动-而且会增加负载。
我已经没有Office了,所以我正在从内存中运行它。希望对您有所帮助。
1401
633
18351
原始代码在有空白单元格时停止的原因是.end()方法模拟了按下结束键,然后模拟了一个箭头,该箭头指向具有数据的第一个/最后一个连续单元格。
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