EXCEL2007 vba 没有设置循环语句 运行时为什么MSGBOX却显示两次提示?代码如下:
Option Explicit
Dim rNAME As String, cPath As String
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ThisWorkbook.Sheets("表8").Activate
If (Range("B2").Value = "") Or (Range("C30").Value = "") Or (Range("L30").Value = "") Then
MsgBox "WENXIONG 提醒你,请填写完红色背景的单元格然后再保存!"
Cancel = True
End If
rNAME = ThisWorkbook.Name
cPath = ThisWorkbook.Path & "\"
If rNAME <> Range("B2") & Range("L30") & "年终统计报表8-12"Then
ThisWorkbook.SaveAs Filename:=cPath & Range("B2") & Range("L30") & "年终统计报表8-12" & ".xls"
If rNAME <> ActiveWorkbook.Name Then
Kill ThisWorkbook.Path & "\" & rNAME
End If
End If
End Sub
vba 无循环语句 为什么MSGBOX却显示两次
答案:3 悬赏:30 手机版
解决时间 2021-02-05 03:10
- 提问者网友:轻浮
- 2021-02-04 17:49
最佳答案
- 五星知识达人网友:底特律间谍
- 2021-02-04 18:57
后面的另存 又调用了一次
全部回答
- 1楼网友:佘樂
- 2021-02-04 20:22
把代码贴上来看看
- 2楼网友:妄饮晩冬酒
- 2021-02-04 20:11
整个代码发一下看看啊
ThisWorkbook.SaveAs Filename:=cPath & Range("B2") & Range("L30") & "年终统计报表8-12" & ".xls"
这句又调用了一次 SaveAs 所以会再次执行BeforeSave 这样就会再次显示 WENXIONG 提醒你,请填写完红色背景的单元格然后再保存!
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ThisWorkbook.Sheets("Sheet1").Activate
If (Range("B2").Value = "") Then
MsgBox "WENXIONG 提醒你,请填写完红色背景的单元格然后再保存!"
Cancel = True
Else
rNAME = ThisWorkbook.Name
cPath = ThisWorkbook.Path & "\"
If rNAME <> Range("B2") & Range("L30") & "年终统计报表8-12" Then
ThisWorkbook.SaveAs Filename:=cPath & Range("B2") & Range("L30") & "年终统计报表8-12" & ".xls"
If rNAME <> ActiveWorkbook.Name Then
Kill ThisWorkbook.Path & "\" & rNAME
End If
End If
End If
End Sub
可以把后面的保存部分代码放在判断后,就是 显示提醒就不保存
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯