vba 错误 1004 对象 _global 的方法相交失败

vba 错误 1004 对象 _global 的方法相交失败

更新(问题重新表述)

我有 2 个不同的 Private Sub(在 ThisWorkbook 中)。每个都可以“单独”正常工作。但是,当它们都被激活时,vba error 1004 method intersect of object _global failed如果我单击 PS#2(C20:C200)中的任何目标单元格,就会弹出错误。

单击“调试”时突出显示的代码行位于 PS#1 中:

    If Not Intersect(Target, Range("RSTcabFINISHING")) Is Nothing Then

我应该怎么做才能使两个子系统协同工作?

私人潜艇#1

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'Initialize cabinet finishing board
If testrange("RSTcabFINISHING") Then
    If Not Intersect(Target, Range("RSTcabFINISHING")) Is Nothing Then
        Target.Offset(0, 1).Resize(, 3).ClearContents
    End If
End If

If testrange("RSTcabMATERIAL") Then
    If Not Intersect(Target, Range("RSTcabMATERIAL")) Is Nothing Then
        Target.Offset(0, 1).Resize(, 3).ClearContents
    End If
End If

Application.EnableEvents = True
End Sub

私人潜艇#2

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
'AUTO COMPLETE - initialize the script (to 0) each time a cell is selected in col "C")
If Selection.Count = 1 Then
    If Not Intersect(Target, Range("C20:C200")) Is Nothing Then
         Worksheets("HARD").Range("AUTOCOMPhardwareVBASCRIPT").Value = 0
         Worksheets("ACC-ST").Range("AUTOCOMPaccessoriesSTVBASCRIPT").Value = 0
         Worksheets("ACC-SP").Range("AUTOCOMPaccessoriesSPVBASCRIPT").Value = 0
    End If
End If
End Sub

很重要的一点:

  • 我有一个函数“testrange”,用于测试目标范围是否存在于 ActiveSheet(放入模块中),那里没有问题......
  • 我不想在 PS#1 中定义工作表名称,因为该工作表可能需要重复。

答案1

在您的语句中If Not Intersect(Target, Range("C20:C200")) Is Nothing Then 明确指定 Range("C20:C200") 位于哪个工作表上。
例如: If Not Intersect(Target, YourSheetHere.Range("C20:C200")) Is Nothing Then

相关内容