Excel VBA从排序表中选择数据
我在excel中遇到VBA问题。 我正在尝试在excel中为体育比赛创建一个参与者注册程序。可以添加参与者的体重、年龄和姓名等数据。在此基础上,将参与者分为以字母A、B、B命名的三组。。。直到Z。我有一个表格,可以按字母对这些poules进行排序,然后例如只显示poule a中的参与者,如下所示 现在,我想用VBA宏计算排序表显示的poule中参与者的数量。例如,当我在poule A上排序时,它必须返回3,当我在B上排序时,它必须返回2 由poule中的参与者数量决定,程序将根据参与者数量打印不同的poule方案。(我在VBA中有此部分) 问题是当我有一个像下面这样的排序表时 它统计所有参与者,而不仅仅是B或任何其他排序字母中的参与者 我有这个: 子计数() 如果您对A进行排序,这很有效,但是当您对任何其他字母进行排序时,它会计算该字母之前的所有表格。对B排序时,它显示5(A+B的数目) 我在互联网上搜索了很长时间,想找到一个解决方案,但没有成功Excel VBA从排序表中选择数据,vba,excel,sorting,rowcount,Vba,Excel,Sorting,Rowcount,我在excel中遇到VBA问题。 我正在尝试在excel中为体育比赛创建一个参与者注册程序。可以添加参与者的体重、年龄和姓名等数据。在此基础上,将参与者分为以字母A、B、B命名的三组。。。直到Z。我有一个表格,可以按字母对这些poules进行排序,然后例如只显示poule a中的参与者,如下所示 现在,我想用VBA宏计算排序表显示的poule中参与者的数量。例如,当我在poule A上排序时,它必须返回3,当我在B上排序时,它必须返回2 由poule中的参与者数量决定,程序将根据参与者数量打印
我希望我的问题很清楚,有人能帮助我。我假设您正在使用工作表函数。使用筛选数据时使用小计 这些参数计算所有可见或隐藏的单元格
- 1平均值
- 2计数
- 3 COUNTA
- 最多4个
- 5分钟
- 6产品
- 7科技发展署
- 8 STDEVP
- 9总计
- 10 VAR
- 11 VARP
- 101平均
- 102计数
- 103 COUNTA
- 最多104
- 105分钟
- 106产品
- 107科技发展署
- 108 STDEVP
- 109总计
- 110伏
- 111 VARP
Dim rSource As Range
Dim rVisibleCells
Set rSource = Range(Range("A2"), Range("A2").End(xlDown))
Set rVisibleCells = rSource.SpecialCells(xlCellTypeVisible)
MsgBox rVisibleCells.Rows.Count
代码现在可以工作了,只是它只计算遇到的第一个字母。 因此,当浇口的第一列是例如A B E时。 我对A进行排序并使用count函数,它只返回值3,而不是5(因为有5个A) 当我将表排序为A时,它如下所示(列号,poule值): 14 A 15 A 16 A 18 A 19 A 它只返回了3个数字,你是否也有解决这个问题的方法 图片:
不,我正在使用VBA函数,以便计算一个poule中的参与者数量,并根据VBA代码打印相应的poule方案,不过请您回答!;)感谢您的回答,代码现在可以工作了,只是它只计算遇到的第一个字母。因此,当poules的第一列是例如A B B E,我排序到A并使用count函数时,它只返回值3而不是5(因为有5个A),当我将表排序到A时,它看起来像这样(列号,poule值):14 A 15 A 16 A 18 A 19 A,它只返回3,您是否也有解决该问题的方法?是否要筛选列表?或者你想要一个过滤过的数组?我想过滤列表,然后返回一个poules大小的计数,我在我的问题中添加了一个注释,带有问题的图片我不明白你的意思?
Dim rSource As Range
Dim rVisibleCells
Set rSource = Range(Range("A2"), Range("A2").End(xlDown))
Set rVisibleCells = rSource.SpecialCells(xlCellTypeVisible)
MsgBox rVisibleCells.Rows.Count