gpt4 book ai didi

vba - 需要一个VBA错误处理按钮来停止代码

转载 作者:行者123 更新时间:2023-12-03 08:11:47 28 4
gpt4 key购买 nike

我正在创建一个模板,其中包含供那些对VBA一无所知的人使用的宏,一旦我走了,就不会再有人为他们调试问题了,所以我尝试构建一些错误如果他们遇到问题,请提供帮助。

在这段代码中,我将创建一个名为ConfirmedPivot的工作表。首先,我包括一个简单的错误处理GoTo 0,该错误指示“此名称已存在”,但恐怕该指令对于用户来说尚不清楚,如何解决错误。

因此,我创建了ConfPivError消息,该消息提供了更好的操作说明,但我不知道该消息最好的按钮是什么。我想要一个将停止代码的按钮,以便他们可以删除重复的名称并重新开始(相当于“结束”按钮)。我尝试了几个按钮,但似乎都无法停止代码。所有的“确定”,“中止”和“取消”按钮都不会停止代码(因此代码尝试再次运行,并且错误再次出现)。

您对我可以使用哪个按钮有任何想法?或者,如果用户按OK后出现此错误,我可以添加一些内容以结束代码吗?

' Create ConfirmedPivot

Dim wsTest As Worksheet
Const strSheetName As String = "ConfirmedPivot"

Set wsTest = Nothing
On Error Resume Next
Set wsTest = ActiveWorkbook.Worksheets(strSheetName)
On Error GoTo ConfPivError ' custom error message

If wsTest Is Nothing Then
Worksheets.Add.Name = "ConfirmedPivot"
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Recovered_Sheet1!R1C1:R65536C114", Version:=xlPivotTableVersion10). _
CreatePivotTable TableDestination:="'ConfirmedPivot'!R1C1", TableName:="PivotTable4" _
, DefaultVersion:=xlPivotTableVersion10
End If

' end Create ConfirmedPivot

' Error handling experiment

ConfPivError:
Answer = MsgBox("ConfirmedPivot Sheet already exists in this workbook. If you don't need it, delete it then try the button again" _
& "(New ConfirmedPivot will be created). If you still need it, rename it and try the button again.", vbOKOnly, "ConfirmedPivot already exists!")

' end experiment

最佳答案

使用On Error Resume Next并以这种方式处理错误有点奇怪。

也许改为这样做:

Const strSheetName As String = "ConfirmedPivot"

Dim wsTest As Worksheet

On Error Resume Next
Set wsTest = ActiveWorkbook.Worksheets(strSheetName)
On Error GoTo 0 'clear EORN

If Not wsTest Is Nothing then
MsgBox "ConfirmedPivot Sheet already exists in this workbook." & _
" If you don't need it, delete it then try the button again" & _
"(New ConfirmedPivot will be created). If you still need it, " & _
" rename it and try the button again.", _
vbOKOnly, "ConfirmedPivot already exists!"
Exit Sub
Else
Worksheets.Add.Name = "ConfirmedPivot"
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _
SourceData:= "Recovered_Sheet1!R1C1:R65536C114", _
Version:=xlPivotTableVersion10). _
CreatePivotTable TableDestination:="'ConfirmedPivot'!R1C1", _
TableName:="PivotTable4", DefaultVersion:=xlPivotTableVersion10
End If

关于vba - 需要一个VBA错误处理按钮来停止代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40090343/

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