Worksheet.Change dows在我打开两个excel文件时不起作用

时间:2015-05-08 08:38:17

标签: excel vba

正如标题所说,当我还有一个excel文件同时打开时,我的代码不起作用。在我的第一个文件中,我在表1中有这个代码:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("A1:C" & ThisWorkbook.Worksheets(1).UsedRange.Rows.Count)) Is Nothing Then
Call Module1.simpleRegex
End If

End Sub

如果我关闭其他工作簿,这可以正常工作。我尝试添加工作簿()。激活但它没有工作..有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您的Range不合格。试试这个:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, ThisWorkbook.Worksheets(1).Range("A1:C" & ThisWorkbook.Worksheets(1).UsedRange.Rows.Count)) Is Nothing Then
        Call Module1.simpleRegex
    End If

End Sub

答案 1 :(得分:0)

我自己想通了。问题是当我关闭我的excel文件并打开另一个文件时;它并没有关闭我的VBA worbook。当我再次打开它时,它显示了2个相同的工作簿。

我搜索了问题并发现一些加载项可能是问题所在。我禁用了一些不需要的加载项,现在它可以工作..