找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25385|回复: 10

[文件操作] 之前用 start /max excel.exe 執行DDE,時會有衝突現象

[复制链接]
发表于 2017-12-12 21:42:32 | 显示全部楼层 |阅读模式
請問 高手

之前用
start /max excel.exe
寫一個簡單的批次檔

是可以直接跳出,
另一個2013 excel,沒問題
可以,很方便作業

但【有巨集 DDE 時】,就會有衝突現象


而用 (手動)
1.執行 Win鍵+R
2.執行 excel /x
【有巨集 DDE 時】,就不會有衝突現象

請問 兩者方式,有何差異

可以請問

1.執行 Win鍵+R
2.執行 excel /x


要 如何 撰寫
可否 幫忙解決,感謝~~
发表于 2017-12-12 22:12:44 | 显示全部楼层
你是台湾的朋友吗?大陆这边的术语有差异,应该是看不懂巨集指的是什么意思。需要你解释一下。
发表于 2017-12-12 22:16:12 | 显示全部楼层


搜索 了一下,好像指的宏?
 楼主| 发表于 2017-12-12 22:33:05 | 显示全部楼层
回复 2# codegay

感謝. 回應
巨集是 excel內的 Visual Basic 編輯器
发表于 2017-12-12 22:49:04 | 显示全部楼层
出现的冲突是怎么样的,截个图吧

评分

参与人数 1技术 +1 收起 理由
codegay + 1 1

查看全部评分

发表于 2017-12-12 23:15:17 | 显示全部楼层
你应该从两种不同启动方式的命令行看看,有什么区别。

评分

参与人数 1技术 +1 收起 理由
codegay + 1 1

查看全部评分

 楼主| 发表于 2017-12-13 18:36:09 | 显示全部楼层
補充 訴求 是

因為 之前
用二個 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.檔案 跑下單 交易
发表于 2017-12-14 00:37:06 | 显示全部楼层
学一下VBS sendkey 挺简单的。应该是可以快速解决你这个问题。
发表于 2017-12-14 22:38:09 | 显示全部楼层
  1. 'test.vbs
  2. 'On Error Resume Next

  3. Dim oExcel, oWsh, sFile1, sFile2

  4. Set oExcel = CreateObject("Excel.Application")
  5. Set oWsh = CreateObject("WSCript.Shell")
  6. oWsh.CurrentDirectory = oExcel.Path
  7. oExcel.Quit

  8. sFile1 = "C:\Users\Yu2n\Desktop\新建 Microsoft Office Excel 工作表.xlsm"
  9. sFile2 = "C:\Users\Yu2n\Desktop\新建 Microsoft Office Excel 工作表 - 副本.xlsm"

  10. oWsh.Run "excel.exe """ & sFile1 & """", 1, False
  11. oWsh.Run "excel.exe /x """ & sFile2 & """", 1, False

  12. Set oExcel = Nothing
  13. Set oWsh = Nothing
复制代码
发表于 2017-12-14 23:07:16 | 显示全部楼层
  1. 'test2.vbs
  2. 'On Error Resume Next

  3. Main
  4. '************************************************************************
  5. Sub Main()
  6. '************************************************************************

  7.     Dim objExcel1, objExcel2, strFile1, strFile2
  8.    
  9.     If Excel_Init(objExcel1) <> True Or Excel_Init(objExcel2) <> True Then
  10.         Exit Sub
  11.     End If
  12.    
  13.     strFile1 = "C:\Users\Yu2n\Desktop\新建 Microsoft Office Excel 工作表.xlsm"
  14.     strFile2 = "C:\Users\Yu2n\Desktop\新建 Microsoft Office Excel 工作表 - 副本.xlsm"
  15.    
  16.     objExcel1.Workbooks.Open(strFile1)
  17.     objExcel2.Workbooks.Open(strFile2)
  18.    
  19.     Excel_Show objExcel1, True
  20.     Excel_Show objExcel2, True
  21.    
  22. End Sub


  23. '************************************************************************
  24. '创建 Excel 对象
  25. '************************************************************************
  26. Function Excel_Init(ByRef objExcel)
  27.     Const msoAutomationSecurityLow = 1 '宏有效打开文件,Application 启动初始值。
  28.     Const msoAutomationSecurityByUI = 2 '使用安全性警告对话框中指定的安全级别打开文件。
  29.     Const msoAutomationSecurityForceDisable = 3 '不显示安全性警告对话框,宏无效打开文件。
  30.     On Error Resume Next
  31.     Set objExcel = CreateObject("Excel.Application")
  32.     If Not Err.Number = 0 Then
  33.         Msgbox "错误:无法创建 Excel 对象,你可能没有安装 Excel 。", vbCritical+vbOKOnly, WScript.ScriptName
  34.         WScript.Quit(999)
  35.     End If
  36.     If Not objExcel.Application.Version >= 12.0 Then
  37.         Msgbox "警告:请使用 Office 2007 以上版本。", vbExclamation+vbOKOnly, WScript.ScriptName
  38.     End If
  39.     ' 隐藏运行,屏蔽提示
  40.     Excel_Show objExcel, False
  41.     'objExcel.AutomationSecurity = msoAutomationSecurityByUI '宏安全性配置
  42.     Excel_Init = (Err.Number = 0)
  43. End Function

  44. '************************************************************************
  45. Sub Excel_Show(ByRef objExcel, ByVal blnShowOrHide)
  46. '************************************************************************
  47.     objExcel.Visible = (blnShowOrHide = True)
  48.     objExcel.DisplayAlerts = (blnShowOrHide = True)
  49. End Sub
复制代码
 楼主| 发表于 2017-12-15 16:16:55 | 显示全部楼层
回复 10# yu2n

yu2n 大大

感謝指點

已能處理,解決了.... 感謝!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 03:26 , Processed in 0.018952 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表