Excel VBA – 在范围函数中使用范围函数

这里有两件事要注意。 第一:我正在使用一个For循环遍历每一行。 第二:我不知道哪一行是最后一列数据,因此我试图使用Range.End函数来查找它。 要select行x中的数据的最后一列,工作的代码是:

 Cells(x, Range("C" & x).End(xlToRight).Column).Select 

正如你从上面看到的,我从C列开始,第X行,寻找最后一个数据在这一行的单元格。 A,B,C,D,E列的数据绝对不会有影响。

现在我尝试从单元格(x,3)(或列C行X)中select一个范围到上面的最后一个单元格,第x行的数据。 以下代码不起作用:

 Range("Cells(x,3):Cells(x, Range("C" & x).End(xlToRight).Column)").Select 

我不知道我是否被允许使用这样的范围函数。 该错误是一个编译错误,说明“预期:列表分隔符或)”,它突出显示Range("C" & x)我仔细看,但没有看到任何遗漏。

我非常感谢任何帮助。

像这样使用它:

 Range(Cells(x,3), Cells(x, Range("C" & x).End(xlToRight).Column)).Select 

使用End(xlToRight)方法只有在您的范围是连续的时才能使用。

如果在范围中间有空单元格(假设列M和N为空),则不会在列“O:X”中获取具有数据的单元格。

Select第x行数据的最后一列,请使用:

 Cells(x, Cells(x, Columns.Count).End(xlToLeft).Column).Select 

Select整个Range使用:

 Range(Cells(x, 3), Cells(x, Cells(x, Columns.Count).End(xlToLeft).Column)).Select 

但是,很less需要Select ,如果您“必须”,那么最好先定义一个Range ,如下所示:

 Dim Rng As Range Set Rng = Range(Cells(x, 3), Cells(x, Cells(x, Columns.Count).End(xlToLeft).Column)) 

稍后,如果您需要Select它使用:

 Rng.Select