【问题标题】:Is there a way to count the number of rows that have all the variables being searched for有没有办法计算所有正在搜索的变量的行数
【发布时间】:2019-04-08 21:23:26
【问题描述】:

我正在使用 VBA 来尝试计算列标题中具有正确信息的行数。例如,假设每一行是不同的位置,我想计算距离建筑物一定距离(比如 200m - 300m)内有蓝色屋顶、树木繁茂的建筑的位置数量。

我在一家火车公司工作,我想看看我们的 Excel 电子表格有多少缺陷。

假设 F2 到 F50 行是不同的位置,J2 到 J50 是参考位置代码,K2 是 Track ID,J 和 M 列是距离信息。我一直在尝试使用 VBA 搜索 Excel 工作表,看看有多少行具有我正在搜索的正确 F、J 和 K 值,但想不出办法。问题是我需要按顺序包含正确信息的行数。说第 5 行有所有正确的变量,所以我会将第 5 行计算在内。

我已经非常详细地解释了这一点,但希望它有点意义。

非常感谢任何帮助。

【问题讨论】:

  • 这必须是VBA吗?这正是COUNTIFS function 的设计初衷。
  • 我最初试图做一个 COUNTIF,但因为我需要扫描整个第二张 excel 表,所以我看不到它是如何完成的。第一张 Excel 表包含我们正在寻找的变量,然后需要扫描整个第二张表以获取正确信息,以查看我们有多少缺陷。这是一个非常困难的问题。
  • 您尝试过 COUNTIFS(而不仅仅是 COUNTIF)吗? COUNTIFS 可以完全按照您的描述进行。

标签: excel vba


【解决方案1】:

如果我理解正确,您只需要计算所有条件都应该匹配的行数。请尝试此代码并告诉我它是否适合您:

Sub NewCode()

    Dim lastRow As Variant
        lastRow = Cells(Rows.Count, "F").End(xlUp).Row
    Dim counter As Integer
        counter = 0

    For i = 2 To lastRow
        If Cells(i, "F").Value = "CORRECT VALUE 1" And _
            Cells(i, "J").Value = "CORRECT VALUE 2" And _
            Cells(i, "K").Value = "CORRECT VALUE 3" Then

            counter = counter + 1

        End If
    Next i

    MsgBox "No of rows: " & counter

End Sub

【讨论】:

  • Miras 你是一个绝对的传奇!它完美地工作。我有两列称为开始里程和结束里程。一组起点和终点里程为赛道长度,另一组为缺陷所在。有没有办法查看原来的起止里程有没有缺陷?
  • 你的意思是需要添加两列,这会告诉你,第一:End mileage 和 Start mileage 之间的差异,第二,如果有一个负的差异表明有缺陷?
  • 有没有办法自动从第一张纸上抓取“ELR”、“Track ID”等,并在第二张纸上使用宏,并将结果存储在第一张纸的相应单元格中.我也希望添加其他单元格值,允许单元格数小于或等于该单元格,但它似乎不起作用: Cells(i, "L").Value = ">=39.0200" And _ Cells(i, "M").Value = "
  • 所以在某种程度上我可以通过查看缺陷(第二个开始和结束里程)是否在我正在查看的轨道位(第一个开始和结束里程)
  • 我最初试图做一个 COUNTIF,但因为我需要扫描整个第二张 excel 表,所以我看不到它是如何完成的。第一张 Excel 表包含我们正在寻找的变量,然后需要扫描整个第二张表以获取正确信息,以查看我们有多少缺陷。这是一个非常困难的问题。
猜你喜欢
  • 1970-01-01
  • 2011-05-19
  • 1970-01-01
  • 2019-10-25
  • 1970-01-01
  • 1970-01-01
  • 2022-11-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多