繁体   English   中英

计算有多少单元格超过其他单元格的值

[英]Count how many cells exceed other cells' value

(我是一个直接的初学者,vba作业的第一个月)

在我的作业中,我收到了一个 excel 文件,里面有 4 张纸(其中,对于我的问题,只有前三张重要)。 前三个名称中的每一个都以日期 (MM/YY) 结尾(分别为 0920、1020 和 1120)。 在所有这些工作表中,我有两列——一列是最小值,另一列是实际值。

我需要创建一个程序,通过特定的月份和年份输入,转到相应的工作表并计算有多少具有实际值的单元格的值大于它们各自的最小值。

我试过这个:

Sub ArtigosArmazem()
    folhas = Array("Stock final 0920", "Stock final 1020", "Stock final 1120")
        For i = LBound(folhas) To UBound(folhas)
            Worksheets(folhas(i)).Activate
        Next
    Dim n As Integer
    x = InputBox("Ano")
    y = InputBox("Mês")
    n = 0
    If x = 2020 And y = setembro Then
        i = "Stock final 0920"
        For k = 3 To 510
            If Cells(k, 8) > Cells(k, 7) Then
            n = n + 1
            End If
        Next
        MsgBox(n)
    End If
End Sub

(“Ano”表示年份,“Mês”表示月份,“setembro”表示葡萄牙语中的 9 月)

但它一直在消息框中输出“0”。 有什么帮助或提示吗?

如果我理解这个问题,那么我认为您需要使用 VBA 进行类似的操作。

Sub ArtigosArmazem()

Dim x  as Integer
Dim y as String 
Dim n as Integer
dim k as Integer

  x = InputBox("Ano")
  y = InputBox("Mês")
  n = 0
  If x = 2020 And y = "setembro" Then
      Sheets("Stock final 0920").Activate
      For k = 3 To 510
          If Cells(k, 8) > Cells(k, 7) Then
          n = n + 1
          End If
      Next
      MsgBox(n)
  End If
End Sub

使用这种方法,您必须注意“setembro”的大写。 在 VBA 中,与 Excel 不同,“setembro”<>“Setembro”。

在每张工作表中使用=SUMPRODUCT((H3:H510>G3:G510)*1)而不是 VBA 可能更容易。

这适用于我的 Excel O365 版本。 我相信它也适用于早期版本。

暂无
暂无

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

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