一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

bat命令打開excel并調用VBA程序

 hdzgx 2019-11-07

面臨的需求:

VBA既可以通過人手動觸發(fā)運行,生成相應的文件;也需要通過命令控制,自動執(zhí)行VBA生成文件,供其他工具使用。

解決方法:

1. 手動執(zhí)行VBA只需要在excel中增加綁定宏的按鈕即可

2. 通過命令執(zhí)行是為了供其他系統(tǒng)或者工具使用,解決思路為,其他工具調bat文件,bat文件通過打開excel執(zhí)行vba

步驟如下:

(1)在VBA中增加workbook的open事件,此事件會在文件打開時觸發(fā)

(2)寫一個bat文件,用于打開excel,同時設置標識,用于標識是bat打開的:

(3)VBA檢查是否為cmd命令打開excel,如果是進行后續(xù)處理,如果否則不處理,代碼如下:

  1. ' 32 位系統(tǒng)為
  2. ' Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineW" () As Long
  3. ' Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (MyDest As Any, MySource As Any, ByVal MySize As Long)
  4. ' Declare Function lstrlenW Lib "kernel32" (ByVal lpString As Long) As Long
  5. ' 64 位系統(tǒng)為
  6. Private Declare PtrSafe Function GetCommandLine Lib "kernel32" Alias "GetCommandLineW" () As LongPtr
  7. Private Declare PtrSafe Function lstrlenW Lib "kernel32" (ByVal lpString As LongPtr) As LongPtr
  8. Private Declare PtrSafe Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (MyDest As Any, MySource As Any, ByVal MySize As LongPtr)
  9. Private Sub Workbook_Open()
  10. Dim CmdRaw As LongPtr
  11. Dim CmdLine As String
  12. Dim Msg As String
  13. CmdRaw = GetCommandLine
  14. CmdLine = CmdToSTr(CmdRaw)
  15. Dim paraPos%
  16. On Error Resume Next ' 這句是必須的,防止非bat打開,下面代碼會報錯
  17. paraPos = WorksheetFunction.Search("/batOpen", CmdLine, 1) '檢查打開方式
  18. If paraPos > 0 Then
  19. MsgBox "bat"
  20. '===============
  21. '===============
  22. Else
  23. MsgBox "man"
  24. End If
  25. End Sub
  26. ' 被調用的子函數(shù) , 用來將命令行參數(shù)轉換成字符串類型:
  27. Function CmdToSTr(Cmd As LongPtr) As String
  28. Dim Buffer() As Byte
  29. Dim StrLen As LongPtr
  30. If Cmd Then
  31. StrLen = lstrlenW(Cmd) * 2
  32. If StrLen Then
  33. ReDim Buffer(0 To CInt(StrLen - 1)) As Byte
  34. CopyMemory Buffer(0), ByVal Cmd, StrLen
  35. CmdToSTr = Buffer
  36. End If
  37. End If
  38. End Function

此時便可以區(qū)分是bat打開還是人工打開。bat打開彈窗

人工打開彈窗。需求圓滿實現(xiàn)。

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    九九热精品视频在线观看| 亚洲av又爽又色又色| 亚洲黄香蕉视频免费看| 国产女优视频一区二区| 殴美女美女大码性淫生活在线播放| 国产精品一区二区成人在线| 午夜精品一区二区三区国产| 日韩欧美一区二区黄色| 91久久精品国产一区蜜臀| 欧美日韩国产二三四区| 欧美午夜国产在线观看| 日韩精品日韩激情日韩综合| 激情五月天深爱丁香婷婷| 国产精品久久精品毛片| 日韩午夜福利高清在线观看| 国产欧美性成人精品午夜| 东京热男人的天堂久久综合| 欧美一本在线免费观看| 美女黄色三级深夜福利| 精品日韩欧美一区久久| 精品国模一区二区三区欧美| 少妇成人精品一区二区| 91日韩欧美在线视频| 日本人妻中出在线观看| 国产精品伦一区二区三区四季| 五月天丁香婷婷一区二区| 国产精品免费无遮挡不卡视频| 亚洲中文字幕剧情在线播放| 日韩一区二区三区久久| 99视频精品免费视频| 日韩精品福利在线观看| 人妻少妇久久中文字幕久久| 伊人欧美一区二区三区| 亚洲国产成人av毛片国产| 最好看的人妻中文字幕| 国产精品人妻熟女毛片av久| 国产在线不卡中文字幕| 欧美日韩国产的另类视频| 国产一区欧美一区二区| 激情综合五月开心久久| 日韩国产亚洲一区二区三区|