下面的第一个宏(M多行)是选取全部A列中有9的所在行,即有结果:第2,4,6,9行被同时选取。 而宏(M1行)也是循环,怎么就只选取了第4行而不是1,2,3,4行都选取呢?? 为什么第一个宏的变量Rng能不断的被增加新值,最后该ran为所有的值的集合(A2,A4,A6,A9)??? 而第二个宏的ran只是最后一个被赋予的值呢???? Sub M多行() Dim Ro As Integer Dim Rng As Range Dim RngCount As Integer For Ro = 1 To [A65536].End(xlUp).Row If Cells(Ro, 1).Value = 9 Then RngCount = RngCount + 1 If RngCount = 1 Then Set Rng = Cells(Ro, 1) Else Set Rng = Union(Rng, Cells(Ro, 1)) End If End If Next Rng.EntireRow.Select Set Rng = Nothing End Sub
Sub M1行() Dim Ro As Integer Dim Rng As Range Dim RngCount As Integer For Ro = 1 To 4 Set Rng = Cells(Ro, 1) Set Rng = Union(Rng, Cells(Ro, 1)) Next Rng.EntireRow.Select End Sub 不明白如下:
为什么第一个Rng.EntireRow.Select能选取多个行??? 而第二个Rng.EntireRow.Select只能选取最后1个行???最后一个循环又怎么改变能让Rng.EntireRow.Select选取4行????
[此贴子已经被作者于2009-11-10 23:40:07编辑过]
什么第一个Rng.EntireRow.Select能选取多个行??? 而第二个Rng.EntireRow.Select只能选取最后1个行???最后一个循环又怎么改变能让Rng.EntireRow.Select选取4行????
这里的问题在于RNG 如果RNG是最后一行的单元格就是选择最后一个行 要是多行 就选中多行
|