Excel 从第一个单元格到最后一个单元格的动态

Excel 从第一个单元格到最后一个单元格的动态,excel,vba,Excel,Vba,我想获得ID的所有单元格,但该工具将适用于许多用户,并且可能是每个用户的另一列编号,因此无法硬编码 到目前为止,我想出了计算所需ID列的列的想法(它将始终具有相同的名称-ID) 然而,我不知道如何根据哪个列编号是ID来获取行。比如,如果ID列编号是3,那么它从C1到最后一个,如果是5,那么是E1,依此类推 我就是这么想的 n_copy_range = Range(Rows.Count, ID).End(xlUp) 但很明显,这给我带来了一个错误,因为VBA不知道从何处开始行计数,并且它得到了荒

我想获得ID的所有单元格,但该工具将适用于许多用户,并且可能是每个用户的另一列编号,因此无法硬编码

到目前为止,我想出了计算所需ID列的列的想法(它将始终具有相同的名称-ID)

然而,我不知道如何根据哪个列编号是ID来获取行。比如,如果ID列编号是3,那么它从C1到最后一个,如果是5,那么是E1,依此类推

我就是这么想的

n_copy_range = Range(Rows.Count, ID).End(xlUp)

但很明显,这给我带来了一个错误,因为VBA不知道从何处开始行计数,并且它得到了荒谬的行数(因为我也不知道哪个列编号ID),由于我在上面介绍的计数,列编号工作得很好

使用
c=application.match(“ID”,行(1),0)
获取列号,然后
设置n\u copy\u range=range(单元格(1,c),range(Rows.Count,c)。End(xlUp))
。即使我已将n\u copy\u range设置为Long或range,我仍然会收到对象“全局失败”的错误1004“range”,有什么建议吗?以前曾多次尝试获取它,但总是出现相同的错误。为什么要将其设置为长?只是尝试使其工作。它不能像long/integer/range那样工作,如果它只是“set”或没有set,它就不能工作,我尝试使用的任何东西在行中都有相同的错误。计数部分我已经通过单元格(1,c)克服了它。选择范围(Selection,Selection.End(xlDown))。选择,但是我读到它不是非常有效的解决方案,所以我尝试忽略它
n_copy_range = Range(Rows.Count, ID).End(xlUp)