【问题标题】:Comparing named range against a cell value将命名范围与单元格值进行比较
【发布时间】:2015-03-04 09:55:52
【问题描述】:

我将尝试制作一个包含 If 语句的宏。但我收到错误消息

子或函数未定义

使用以下代码。

Sub whatif()

    If Range("memory") = "data" Then 
Worksheet("Side").Range("B1") = "yes"
    End If

End Sub

我发现问题是线

Worksheet("Side").Range("B1") = "yes"

目标如下。 如果单元格“内存”的值等于单元格“数据”的值。工作表“Side”的单元格 B1 获得值“yes”。

当注释掉其他行时,它仍然会报错。需要调整什么?

编辑:它不再给出错误,但不是我想要它做的事情。

【问题讨论】:

  • 把这个Worksheet("Side")改成Worksheets("Side")

标签: excel vba if-statement excel-2010


【解决方案1】:

您没有正确索引集合。使用

Worksheets("Side").Range("B1") = "yes"

注意复数。

【讨论】:

    【解决方案2】:

    Worksheet("Side").Range("B1") 更改为Worksheets("Side").Range("B1")

    如果错误仍然存​​在,请检查子名称是否与模块名称不同,并且您没有在另一个子中使用相同的名称,因为这可能会导致定义错误。

    在以下位置阅读有关此错误的更多信息 https://msdn.microsoft.com/en-us/library/s8y42ktc.aspx

    【讨论】:

      【解决方案3】:

      谢谢,我已经设法找到另一个错误。忘记输入 Range("data"),

      sub whatif()

      If Range("memory") = Range("data") Then
          Worksheets("Side").Range("B1").Value = 20
      End If
      

      结束子

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多