gpt4 book ai didi

vba - 如何对非矩形范围的列中的单元格进行计数

转载 作者:行者123 更新时间:2023-12-02 13:45:15 27 4
gpt4 key购买 nike

所以我有一个将由用户选择的范围。它将是两列,通常不相邻。我需要计算所选范围内每列中的单元格数量,以确定每列中的单元格数量是否相等。 (如果不是,我将需要调整范围。)

例如,用户可以选择 B5:B10 和 D6:D9。所以我需要代码分别返回 6 和 4。

我已经尝试过:

Set rng = Selection
rng.Columns(1).Count

这会返回 1,这显然不是我需要的数字。

提前致谢!

最佳答案

您可以使用Range对象的Areas方法来获取范围的面积。区域是非连续范围内的连续范围组。

Set rng = Selection
For i = 1 to rng.Areas.Count
debug.print rng.Areas(i).Cells.Count
Next

这里有一个警告您可能需要测试,即用户是否通过一次鼠标拖动选择了 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

关于vba - 如何对非矩形范围的列中的单元格进行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38460466/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com