Cor*_*rus 3 excel vba excel-vba
所以我有一个将由用户选择的范围.它将是两列,通常不会彼此相邻.我需要计算所选范围的每列中的单元格数,以确定每列中的单元格数是否相等.(如果不是,我需要调整范围.)
例如,用户可以选择B5:B10和D6:D9.所以我需要代码分别返回6和4.
我试过了:
Set rng = Selection
rng.Columns(1).Count
Run Code Online (Sandbox Code Playgroud)
这返回1,这显然不是我需要的数字.
提前致谢!
您可以使用对象的Areas方法Range来获取范围的区域.区域是非连续范围内的连续范围组.
Set rng = Selection
For i = 1 to rng.Areas.Count
debug.print rng.Areas(i).Cells.Count
Next
Run Code Online (Sandbox Code Playgroud)
这里需要注意的是,您可能需要测试,例如,如果用户选择了A1:B10,只需拖动鼠标.由于这是一个连续的范围,它只有一个Area,你不会得到两个不同的数字.如果您需要对此进行测试,可以执行以下操作.
Set rng = Selection
'non-contiguous ranges will always return one column, if there are mutiple columns both cell counts are equal by default
If rng.Columns.Count = 1 Then
For i = 1 to rng.Areas.Count
debug.print rng.Areas(i).Cells.Count
Next
End If
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
155 次 |
| 最近记录: |