【问题标题】:I am having a type mismatch error with this reference我遇到此参考的类型不匹配错误
【发布时间】:2018-01-31 04:29:29
【问题描述】:

这是我遇到问题的代码。当B列中相应行中的值为氘时,我只是尝试将值“0”输入到G列中。调试器告诉我我的错误在于包含 If 语句的行。

For i = 3 To 30
    If Worksheets("Master PEC").Cells(i, 2) = "Deuterium" Then
        Worksheets("Master PEC").Cells(i, 7).Value = 0
    End If
Next

截图:

【问题讨论】:

  • 您确定WorkSheet 被命名为“Master PEC”吗?还是那是Workbook 的名字?
  • @brax 那么错误应该是“超出范围”?
  • 在要检查的范围内是否有 (#N/A, #Div/0, #Value,...) 之类的错误?
  • 是的。范围有#Value!在里面@ScottCraner

标签: vba excel for-loop if-statement


【解决方案1】:

您不能将错误等同于字符串。

您需要添加一个检查以不测试错误。

For i = 3 To 30
    If Not IsError(Worksheets("Master PEC").Cells(i, 2)) Then
        If Worksheets("Master PEC").Cells(i, 2) = "Deuterium" Then
            Worksheets("Master PEC").Cells(i, 7).Value = 0
        End IF
    End If
Next

【讨论】:

  • 谢谢!我现在收到我的 for 循环尚未初始化的错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-10
  • 2016-03-03
  • 1970-01-01
  • 2013-09-26
  • 1970-01-01
  • 2017-10-17
  • 2019-04-14
相关资源
最近更新 更多