繁体   English   中英

VBA 计算一列中不同值的数量,从固定点开始,到最后一个有值的单元格结束

[英]VBA Count number of different values within a column, starting from a fixed point, ending at last cell that has a value in it

VBA 大家好,我刚开始使用 VBA,我正在寻找解决问题的方法。 任务是计算列内不同值(供应商)的数量,从固定点开始,假设 A 列从 A5 开始,但以该列的最后一个值结束。 每次我尝试将 A5 到最后写入的单元格的范围放在 AI 列中时,要么得到错误,要么得到错误的答案。 这里有人可以帮助我吗?


Sub Count_Values_()

Sheets("Präsentation").Select

Dim dblAnz As Double

Dim rngRange As Range, rngRangeCnt As Range

Set rngRange = Range("A5:A50")

For Each rngRangeCnt In rngRange
    dblAnz = dblAnz + 1 / WorksheetFunction.CountIf(rngRange, rngRangeCnt.Text)
Next


Dim Bereich  As Range

Dim Zelle    As Range

Dim lAnzahl  As Long

   Set Bereich = Range("A5:A50")
   
   For Each Zelle In Bereich
      If Zelle.Font.Bold = True Then
         lAnzahl = lAnzahl + 1
      End If
   Next Zelle

Sheets("Anleitung").Select

Range("F1").Value = dblAnz - lAnzahl - 1

End Sub

这是我之前通过搜索从 A5 到 A50 的值并减去所有粗体标题使用的代码。 我还添加了一个 -1,因为空单元格也算作一个值,我猜或者至少我通过这种方式得到了正确的数字。

请尝试下一种方法:

Sub testCountDefinedRange()
   Dim sh As Worksheet, startRow As Long
   Const searchVal As Double = 25.13 'what is it to be searched for
   
   Set sh = ActiveSheet 'use here the sheet you need
   startRow = 5         'the starting row of the range to be searched

   Debug.Print WorksheetFunction.CountIf(sh.Range("A" & startRow, sh.Range("A" & sh.rows.count).End(xlUp)), searchVal)
End Sub

但根据社区精神,你应该证明你参与解决了你自己的问题。 即使你不能向我们展示一段有效的代码/公式等。任何能证明你做了某事的东西,至少,对互联网的一些研究……

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM