【发布时间】:2021-02-24 21:45:59
【问题描述】:
我想阻止用户保存 VSTO 项目。
Public Class ThisWorkbook
Private Sub ThisApplication_WorkbookBeforeSave(Wb As Workbook, SaveAsUI As Boolean, ByRef Cancel As Boolean) Handles ThisApplication.WorkbookBeforeSave
Cancel = True
End Sub
end Class
我的目标是设置一个变量,如 VbaSave(作为布尔值),并在 VBA 中使用一个子变量在该变量上分配 True 或 False,然后保存或不保存项目。
我脑海中的新代码将是:
在 VSTO 中
Public Class ThisWorkbook
public VbaSave as Boolean = false
Private Sub ThisApplication_WorkbookBeforeSave(Wb As Workbook, SaveAsUI As Boolean, ByRef Cancel As Boolean) Handles ThisApplication.WorkbookBeforeSave
if VbaSave= false then Cancel = True
End Sub
end Class
在 VBA 模块中
sub mysave()
myPath = Application.GetSaveAsFilename(FileFilter:= _
"Excel Files (*.xlsx), *.xlsx", title:="Save PO", _
InitialFileName:=ThisWorkbook.Path)
If myPath = "Falso" Then
msgStr = "ATTENTION !!!" & vbCrLf & "operazione annullata," & vbCrLf & _
"nessun file verrà salvato."
MsgBox msgStr, vbInformation, "Revi4Utility.Info"
GoTo done
Else
VbaSave=true
ActiveWorkbook.SaveCopyAs fileName:=myPath
VbaSave=false
End If
end sub
当我运行 mysave 时,此示例崩溃。调试告诉我VbaSave 没有定义。
【问题讨论】:
标签: vba visual-studio vsto