任何想法为什么插入断点和停止不再阻止我的VBA代码运行?
代码一直运行到最后(我测试过了),但忽略断点和停止。
同时,单步执行代码会使代码完全运行,忽略断点和停止。
当我关闭工作簿时,问题似乎起源于其他宏工作簿中也会出现相同的问题。
如果我完全关闭Excel并使用正常工作的宏工作簿重新打开它,则在重新打开有问题的工作簿之前不会出现此问题。
我在以下位置添加了断点:
代码一直运行到最后(我测试过了),但忽略断点和停止。
同时,单步执行代码会使代码完全运行,忽略断点和停止。
当我关闭工作簿时,问题似乎起源于其他宏工作簿中也会出现相同的问题。
如果我完全关闭Excel并使用正常工作的宏工作簿重新打开它,则在重新打开有问题的工作簿之前不会出现此问题。
我在以下位置添加了断点:
TotP1 = 0
以下是代码的内容:Option Explicit
Private Country As String
Private Measure As String
Private P1 As String
Private P2 As String
Private TotP1 As Double
Private TotP2 As Double
Sub VennDisplayIt()
Dim SI() As String
Dim SICount As Integer
Dim x As Integer
Dim OSh As Worksheet
Dim BrandListBox As Object
Dim VennGroup As Shape
TotP1 = 0
TotP2 = 0
Set OSh = ThisWorkbook.Sheets("Venn")
Set BrandListBox = OSh.OLEObjects("BrandListBox").Object
ReDim SI(2, 0)
For x = 0 To BrandListBox.ListCount - 1
If BrandListBox.Selected(x) = True Then
'If UBound(SI) < 4 Then
ReDim Preserve SI(2, UBound(SI, 2) + 1)
SI(1, UBound(SI, 2)) = BrandListBox.List(x)
SI(2, UBound(SI, 2)) = x + 1
'End If
End If
Next x
If UBound(SI, 2) < 2 Then
BrandListBox.Selected(BrandListBox.ListIndex) = True
Exit Sub
ElseIf UBound(SI, 2) > 4 Then
BrandListBox.Selected(BrandListBox.ListIndex) = False
Exit Sub
End If
For x = 1 To UBound(SI, 2)
OSh.Range("o8").Offset(x, 0).Value = SI(1, x)
OSh.Range("o8").Offset(x + 5, 0).Value = SI(1, x)
Next x
For x = UBound(SI, 2) + 1 To 4
OSh.Range("o8").Offset(x, 0).Value = ""
OSh.Range("o8").Offset(x + 5, 0).Value = ""
Next x
SICount = UBound(SI, 2)
For x = 1 To OSh.Shapes.Count
If Right(OSh.Shapes(x).Name, 5) = "Group" Then
If LCase(OSh.Shapes(x).Name) = SICount & "waygroup" Then
Set VennGroup = OSh.Shapes(x)
OSh.Shapes(x).Visible = True
Else
OSh.Shapes(x).Visible = False
End If
End If
Next x
For x = 1 To SICount
VennGroup.GroupItems.Item(SICount & "WayBrand" & x).DrawingObject.Text = SI(1, x)
Next x
Country = ThisWorkbook.Sheets("Venn").Range("D4").Value
Measure = ThisWorkbook.Sheets("Venn").Range("E32").Value
P2 = ThisWorkbook.Sheets("Venn").Range("E31").Value
P1 = ThisWorkbook.Sheets("Selections").Range("B5").Value
End Sub
TotP1 = 0
处设置了断点并运行了您的代码,它确实在那里中断了。因此,我的猜测是该工作簿确实存在某些损坏。 - Excel Hero