这里有两点需要注意。第一个:我使用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)
我仔细查看但没有看到任何遗漏。
我非常感谢任何协助。
答案 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