gpt4 book ai didi

excel - 如何克服excel中的 "Out of stack space error"?

转载 作者:行者123 更新时间:2023-12-04 21:50:25 25 4
gpt4 key购买 nike

如果 A3 中的计数不等于 6,我正在尝试清除单元格 A5 到 A10 的数据。我写了一个“If 语句”,但它给了我堆栈错误。我该如何克服这个错误

我尝试了“if 语句”,但它给了我错误。

Dim Count As Integer
Dim BundleDup As Integer
Dim duplicateall As Integer
Dim SAPError As Integer

Private Sub Worksheet_Change(ByVal Target As Range)
Count = Range("A3").Value
BundleDup = Range("B3").Value
duplicateall = Range("C3").Value
SAPError = Range("D3").Value

If Target.Address = "$A$10" And Count = 6 And BundleDup = 0 And duplicateall = 0 And SAPError = 0 Then

newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 3
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
Call MoveData
End If

If Count <> 6 Then
Call ClearData
End If

End Sub

如果我不使用它,代码可以正常工作
 If Count <> 6 Then
Call ClearData
End If

但是一旦我使用它并在 A5 到 A10 中输入值,它会清除数据但它会卡住并给我错误。

ClearData 模块包括以下代码:
Sub ClearData()
'
' ClearData Macro
'

'
Range("A5:A10").Select
Range("A10").Activate
Selection.ClearContents
Range("A5").Select
End Sub

最佳答案

这是应该如何处理这种情况:

    Public ClearingData As Boolean  'initializes natively to "False"

Private Sub Worksheet_Change(ByVal Target As Range)
If ClearingData Then Exit Sub 'stops the recursive loop
ClearingData = True

Count = Range("A3").Value
BundleDup = Range("B3").Value
duplicateall = Range("C3").Value
SAPError = Range("D3").Value

If Target.Address = "$A$10" And Count = 6 And BundleDup = 0 And duplicateall = 0 And SAPError = 0 Then

newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 3
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
Call MoveData
End If

If Count <> 6 Then
Call ClearData 'Here's where the recursive loop gets created.
End If

ClearingData = False

End Sub

这可以防止递归循环启动并且仍然启用事件。代码完全在函数内处理特定情况,避免可能影响其他函数的意外结果。

如果“MoveData”函数更改了单元格选择并且您调用了“Worksheet_SelectionChange”事件,则禁用事件将阻止调用该事件。通过使用上述逻辑,事件仍然会被调用。如果您想阻止从此函数调用“Worksheet_SelectionChange”,只需在“Worksheet_SelectionChange”事件的开头包含“If ClearingData Then Exit Sub”行。

抱歉,我在上面的评论中使用了“全局”一词而不是“公共(public)”。

关于excel - 如何克服excel中的 "Out of stack space error"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55575776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com