Excel VBA - 使用范围函数中的范围函数

时间:2017-02-20 09:27:00

标签: excel vba excel-vba

这里有两点需要注意。第一个:我使用For循环来遍历每一行。第二个:我不知道哪一行是每行中包含数据的最后一列,因此我尝试使用Range.End函数来查找它。要选择包含第x行数据的最后一列,可以使用的代码是:

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

从上面的内容可以看出,我从C列开始,第X行,并在该行中查找包含数据的最后一个单元格。我不认为重要的是我从哪一列开始,因为A,B,C,D和E列肯定会有数据。

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

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

我不知道是否允许我使用这样的范围功能。该错误是编译错误,表明"期望:列表分隔符或)"并且它突出显示C中的Range("C" & x)我仔细查看但没有看到任何遗漏。

我非常感谢任何协助。

2 个答案:

答案 0 :(得分:1)

使用End(xlToRight)的方法仅在您的范围是连续的情况下才有效。

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

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

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

然而,很少需要Select,如果你“必须”那么最好首先定义Range,如下所示:

Dim Rng As Range

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

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

Rng.Select

答案 1 :(得分:0)

像这样使用:

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