【问题标题】:How to count a variable with two conditions VBA Excel如何计算具有两个条件VBA Excel的变量
【发布时间】:2013-11-03 10:05:57
【问题描述】:

我正在伊利诺伊大学厄巴纳-香槟分校的校园内开展一个关于住房的项目。

我想根据两个条件来计算:房子是否是兄弟会(编码为“1”)以及是否在香槟(如果地址 *61820)。

这是我的宏:

Sub ChampFrat()

  Dim Champaign As Integer
  Champaign = 0

  If Range("$B2:$B79").Value = "1" And Range("$C2:$C79").Value = "*61820" Then
    Range("$B$82").Value = (Champaign = Champaign + 1)
  Else
    Range("$B$82").Value = (Champaign = Champaign + 0)
  End If
End Sub

我收到“类型不匹配”错误。

我需要创建五个其他类似的宏;一个计数厄巴纳 (*61801) 的兄弟会 (“1”),一个计数香槟 (地址 *61820) 的姐妹会 (“0”),一个计数厄巴纳 (*61801) 的姐妹会 (“0”),一个计数用于计算 Champaign (*61820) 中的男女同校 ("2") 和一个用于计算厄巴纳 (*61801) 中的男女同校 ("2")。

我在课堂上学习了 VBA 和 MySQL,从那以后就很少使用它了,但是我想在诸如此类的项目中更好地学习它。我为赞成或回答其他问题而道歉;我已经很久没有使用 StackOverflow 了。我真诚地感谢任何帮助。

【问题讨论】:

  • ... And Range("$C2:$C79").Value Like "*61820" 如果要使用通配符,则需要使用Like

标签: vba excel count conditional


【解决方案1】:

您不能在 VB 中像您在此处尝试的那样在方程式右侧分配值:

Range("$B$82").Value = (Champaign = Champaign + 1)

改成这样:

Range("$B$82").Value = Champaign + 1

我假设您想同时检查每个值而不是整个值范围。您需要遍历范围并单独测试每个范围。

Sub ChampFrat()

  Dim Champaign As Integer
  Champaign = 0

  Dim rRng As Range
  Set rRng = Range("$B2:$B79")

  For Each cell In rRng.Cells
    If cell.Value = "1" And cell.offset(0,1).Value Like "*61820" Then
      Champaign = Champaign + 1
      Range("$B$82").Value = Champaign
    Else
      Range("$B$82").Value = Champaign
    End If
  Next
End Sub

【讨论】:

    猜你喜欢
    • 2016-03-12
    • 1970-01-01
    • 2017-07-06
    • 2019-09-05
    • 2020-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-11
    相关资源
    最近更新 更多