标题: [文件操作] 之前用 start /max excel.exe 執行DDE,時會有衝突現象 [打印本页]
作者: sop0123 时间: 2017-12-12 21:42 标题: 之前用 start /max excel.exe 執行DDE,時會有衝突現象
請問 高手
之前用
start /max excel.exe
寫一個簡單的批次檔
是可以直接跳出,
另一個2013 excel,沒問題
可以,很方便作業
但【有巨集 DDE 時】,就會有衝突現象
而用 (手動)
1.執行 Win鍵+R
2.執行 excel /x
【有巨集 DDE 時】,就不會有衝突現象
請問 兩者方式,有何差異
可以請問
1.執行 Win鍵+R
2.執行 excel /x
要 如何 撰寫
可否 幫忙解決,感謝~~
作者: codegay 时间: 2017-12-12 22:12
你是台湾的朋友吗?大陆这边的术语有差异,应该是看不懂巨集指的是什么意思。需要你解释一下。
作者: codegay 时间: 2017-12-12 22:16
搜索 了一下,好像指的宏?
作者: sop0123 时间: 2017-12-12 22:33
回复 2# codegay
感謝. 回應
巨集是 excel內的 Visual Basic 編輯器
作者: Blitz 时间: 2017-12-12 22:49
出现的冲突是怎么样的,截个图吧
作者: ivor 时间: 2017-12-12 23:15
你应该从两种不同启动方式的命令行看看,有什么区别。
作者: sop0123 时间: 2017-12-13 18:36
補充 訴求 是
因為 之前
用二個 2003 excel是OK的
開二個 2003 excel都可以是 獨立視窗
而 升級到 2013
網上
是說 可以獨立
2010 才會有問題
問題是
本人一開 2013 excel
到第二個 2013 excel 就出現問題
所以 才想辦法
用 BAT 來簡化,克服
************************
目前
是用手動方式
1.執行 Win鍵+R
2.執行 excel /x (處理)
************************
1.要開二個獨立的 2013 excel
2.二個 2013 excel 的視窗
各開各的檔案,各跑各的巨集運作
A.檔案 跑訊號 策略
B.檔案 跑下單 交易
作者: codegay 时间: 2017-12-14 00:37
学一下VBS sendkey 挺简单的。应该是可以快速解决你这个问题。
作者: yu2n 时间: 2017-12-14 22:38
- 'test.vbs
- 'On Error Resume Next
-
- Dim oExcel, oWsh, sFile1, sFile2
-
- Set oExcel = CreateObject("Excel.Application")
- Set oWsh = CreateObject("WSCript.Shell")
- oWsh.CurrentDirectory = oExcel.Path
- oExcel.Quit
-
- sFile1 = "C:\Users\Yu2n\Desktop\新建 Microsoft Office Excel 工作表.xlsm"
- sFile2 = "C:\Users\Yu2n\Desktop\新建 Microsoft Office Excel 工作表 - 副本.xlsm"
-
- oWsh.Run "excel.exe """ & sFile1 & """", 1, False
- oWsh.Run "excel.exe /x """ & sFile2 & """", 1, False
-
- Set oExcel = Nothing
- Set oWsh = Nothing
复制代码
作者: yu2n 时间: 2017-12-14 23:07
- 'test2.vbs
- 'On Error Resume Next
-
- Main
- '************************************************************************
- Sub Main()
- '************************************************************************
-
- Dim objExcel1, objExcel2, strFile1, strFile2
-
- If Excel_Init(objExcel1) <> True Or Excel_Init(objExcel2) <> True Then
- Exit Sub
- End If
-
- strFile1 = "C:\Users\Yu2n\Desktop\新建 Microsoft Office Excel 工作表.xlsm"
- strFile2 = "C:\Users\Yu2n\Desktop\新建 Microsoft Office Excel 工作表 - 副本.xlsm"
-
- objExcel1.Workbooks.Open(strFile1)
- objExcel2.Workbooks.Open(strFile2)
-
- Excel_Show objExcel1, True
- Excel_Show objExcel2, True
-
- End Sub
-
-
- '************************************************************************
- '创建 Excel 对象
- '************************************************************************
- Function Excel_Init(ByRef objExcel)
- Const msoAutomationSecurityLow = 1 '宏有效打开文件,Application 启动初始值。
- Const msoAutomationSecurityByUI = 2 '使用安全性警告对话框中指定的安全级别打开文件。
- Const msoAutomationSecurityForceDisable = 3 '不显示安全性警告对话框,宏无效打开文件。
- On Error Resume Next
- Set objExcel = CreateObject("Excel.Application")
- If Not Err.Number = 0 Then
- Msgbox "错误:无法创建 Excel 对象,你可能没有安装 Excel 。", vbCritical+vbOKOnly, WScript.ScriptName
- WScript.Quit(999)
- End If
- If Not objExcel.Application.Version >= 12.0 Then
- Msgbox "警告:请使用 Office 2007 以上版本。", vbExclamation+vbOKOnly, WScript.ScriptName
- End If
- ' 隐藏运行,屏蔽提示
- Excel_Show objExcel, False
- 'objExcel.AutomationSecurity = msoAutomationSecurityByUI '宏安全性配置
- Excel_Init = (Err.Number = 0)
- End Function
-
- '************************************************************************
- Sub Excel_Show(ByRef objExcel, ByVal blnShowOrHide)
- '************************************************************************
- objExcel.Visible = (blnShowOrHide = True)
- objExcel.DisplayAlerts = (blnShowOrHide = True)
- End Sub
复制代码
作者: sop0123 时间: 2017-12-15 16:16
回复 10# yu2n
yu2n 大大
感謝指點
已能處理,解決了.... 感謝!!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |