Else 语句导致运行时错误

迈克尔·阿马蒂

我正在编写我的第一个 VBA 代码并收到一个我无法跟踪的奇怪错误。

如果另一个单元格 (C15) 等于“否”,我只是尝试为某些单元格分配一个值,如果 C15 具有任何其他值,则将这些单元格的值设置为“其他”。

如果我注释掉 else 部分它会起作用,但失败并说

“对象‘_Worksheet’的方法‘Range’失败。”

然后Excel崩溃。

任何帮助是极大的赞赏。

Option Explicit
Public Sub_Contractor_Target As Range
Public Sub_Contractor_Target_Value As String
Public SC_Option3 As String


Sub SetTarget()
    Set Sub_Contractor_Target = Worksheets("Menu").Range("C15")
    Set Sub_Contractor_Target_Value = Sub_Contractor_Target.Value
End Sub




'Set Sub Contractor Section to Option 3
Private Sub worksheet_change(ByVal Sub_Contractor_Target As Range)
SC_Option3 = Worksheets("Options").Range("D27").Value
'MsgBox (Sub_Contractor_Target)
If Sub_Contractor_Target.Value = "No" Then

   Worksheets("Menu").Range("C55") = SC_Option3
   Worksheets("Menu").Range("C56") = "Low"

Else
   Worksheets("Menu").Range("C55,C56").Value = "Other"
End If
End Sub
显示名称

我认为您不需要大部分代码(公共变量,SetTarget sub)

尝试仅将以下内容放在“菜单”工作表代码窗格中

Option Explicit
Private Sub worksheet_change(ByVal Target as Range)
    If Target.Address <> "$C$15" Then Exit Sub
    On Error GoTo ExitSub
    Application.EnableEvents = False
    If Range("C15").Value = "No" Then
        Range("C55") = Worksheets("Options").Range("D27").Value
        Range("C56") = "Low"
    Else
        Range("C55,C56").Value = "Other"
    End If
ExitSub:
    Application.EnableEvents = True
End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章