首页 > 解决方案 > 使用VBA的动态数据不均匀时如何选择并复制到最后一个单元格

问题描述

input:

45311       
0003ML00030-1   0003ML00030-2   0003ML00030-3
0003ML00030-1   0003ML00030-1 

看我的快照高亮区域需要选择

请参阅我的快照突出显示区域需要选择,最后一个单元格有时是空白的并且也是动态的。

从上面的输入中,需要选择所有数据并复制它。当我重用工作表时,数据范围可能会有所不同,当时标准公式无法正常工作。

目前我使用这个 VBA 代码。

Sub Macro()
 Sheets("input").Select
Range("D2").Select
   Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
   Selection.Copy
End Sub

当我使用此代码时,它选择 Extreme 最后一个单元格(行 1048570 x col 41)。

但在这种情况下,最后一个单元格是(row4 x col7),如果数据范围不同,我需要动态选择

标签: excelvbaselectdynamic

解决方案


这是代码:

Sub Macro()
Sheets("input").Activate
Range("b1").CurrentRegion.Copy

End Sub

通常,要检查最后一个单元格的行号,您可以使用

Cells(Rows.Count, "B").End(xlUp).Row

检查最后一个单元格的列号,您可以使用

Cells(2, Columns.Count).End(xlToLeft).Column

这是修改后的代码和图片的演示。

Sub Macro()
Sheets("input").Activate
Set rng = Range("d1").CurrentRegion
rng.Offset(1, 3).Resize(rng.Rows.Count - 1, rng.Columns.Count - 3).Copy

End Sub

在此处输入图像描述


推荐阅读