由于主题意味着我遇到了问题,我找不到任何解决方案。
我有一个工作簿(1),目的是打开其他WB并在其中运行宏。
一切都像魅力一样,除非其他WB有Workbook_Open()
事件来打开Userform(通常它会询问WB是否应该更新)。然后我得到错误代码1004,我的代码失败。
当我打开另一个WB时,我怎么能阻止Workbook_Open
事件触发?
我已尝试设置Application.EnableEvents = False
,但这不相关。
非常感谢您对此主题的任何帮助!
以下是打开WB的代码
Public Function wbTargetOpen(sTargetPath As String, SPassword As String) As Workbook
Dim sWBName As String
sWBName = Mid(sTargetPath, InStrRev(sTargetPath, "\") + 1, Len(sTargetPath) - InStrRev(sTargetPath, "\") + 1)
If WorkbookIsOpen(sWBName) Then
Set wbTargetOpen = Workbooks(sWBName)
If wbTargetOpen.ReadOnly = True Then
wbTargetOpen.Close
Set wbTargetOpen = Workbooks.Open(FileName:=sTargetPath, UpdateLinks:=0, ReadOnly:=False, WriteResPassword:=SPassword)
End If
Else
Set wbTargetOpen = Workbooks.Open(FileName:=sTargetPath, UpdateLinks:=0, ReadOnly:=False, WriteResPassword:=SPassword)
End If
If wbTargetOpen.ReadOnly Then sErrorCode = "ReadOnly"
结束功能
答案 0 :(得分:3)
您所要做的就是在启动用户表单的其他工作簿中添加一个单词VbModeless
。
Private Sub Workbook_Open()
UserForm1.Show vbModeless
End Sub
vbModeless
将启动表单,但也允许您的宏运行。
答案 1 :(得分:1)
@IBOutlet weak var vol1: UISlider!
@IBAction func volAdjust1(sender: AnyObject) {
FourPlayers.audioPlayers[0].volume = vol1.value
}