|
本帖最后由 boy8199 于 2019-4-28 18:12 编辑
今天 通过 一个EXCEL 调用另一个隐藏的Excel的宏,来打开一个 无模式窗口.
通过 一个打开的 excel 调用 另一 未打开的excel的宏, 隐藏workbook 来 显示一个 无模式窗口.
发现, 如果 用模式窗口 代码正常,如果用 无模式窗口.
出现两个问题:不定时出现哪个.
1 正常 进行初始化,但是 运行到 某个点 弹出 429 错误,无法创建对象, 如果分步调试,又找不到 问题,无法定位. 需要使用 文件输出的方式调试,所以没有 在查找.
2 直接无法初始化,点击是 直接 错误, run 无法 运行在 application 对象 .... 类似的吧.
后来,使用 先打开文件,然后 打开宏的方式, 结果 出现 打开命令后的 代码 都无法执行.
- worksheet.open ("'F:\合同" & "\" & "合同.xlsm'" & "!查看")
- Call Application.Run("合同.xlsm" & "!查看") '----这一行不执行'
worksheet.open 之后的代码无法执行,又是 set w = worksheet.open ,照样无法执行.
虽然无法执行后续代码,但是 重新 再点击一次 这次 直接调用 Call Application.Run("合同.xlsm" & "!查看") 打开了.
也就是说: 要点两次才能显示 非模式窗口.
没办法,只好 有使出 错误检测的办法.
希望能给网友们 一个思路 和提示.
另外 worksheet.open 之后的代码无法执行 ,有 网友\大神\高手 知道原因的请 给留言. 谢谢.
=======================
- Dim w As Workbook: Dim i As Long
- For Each w In Application.Workbooks
- If w.Name = "合同.xlsm" Then i = 1
- Next
- If i = 0 Then
- '如果窗口为 非模式,那么该命令将无法执行.
- On Error Resume Next
- Call Application.Run("'F:\合同" & "\" & "合同.xlsm'" & "!查看")
- If Err.Number <> 0 Then
- DoEvents
- Call Application.Run("合同.xlsm" & "!查看")
- End If
- On Error GoTo 0
- Else
- Call Application.Run("查看扫描件.xlsm" & "!查看")
- End If
- DoEvents
======================
|
|