国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C#調用Excel VBA宏

2019-11-17 03:03:57
字體:
來源:轉載
供稿:網友
C#調用Excel VBA宏

近日的一系列工作是做網站的營運維護,因此做了大量的支持工具。有Excel中寫VBA的,也有直接C#做的工具。有時需要在C#中執行Excel VBA宏,甚至有時還需要在執行了VBA宏之后,獲取返回值再進行相應的處理。為了使用方便,我寫了一個執行Excel VBA宏的幫助類。放在博客里做個備份也希望對有類似需求的朋友有所幫助。幫助類僅提供了一個方法:RunExcelMacro 參數說明: string excelFilePath Excel文件路徑 stringmacroName 宏名稱 object[] parameters 宏參數組 out object rtnValue 宏返回值 bool isShowExcel 執行時是否顯示Excel

補充說明:VBA宏需如下圖寫在模塊中,才能被此方法識別。寫在ThisWorkBook中不能被識別。

執行Excel VBA宏幫助類,注釋比較詳細,不再累贅代碼過程。最核心部分其實就是通過反射方式調用Excel VBA宏,oBook.Save()這句話也很重要,否則即使執行了VBA宏調用,也不會保存Excel更改后的內容

java代碼Flashvars" value="clipboard=%201%20using%20System%3B%0A%20%202%20using%20System.Collections.Generic%3B%0A%20%203%20using%20System.Text%3B%0A%20%204%20using%20Excel%20%3D%20Microsoft.Office.Interop.Excel%3B%0A%20%205%20using%20Microsoft.Office.Core%3B%0A%20%206%20using%20System.IO%3B%0A%20%207%20%0A%20%208%20namespace%20DoVBAMacro%0A%20%209%20%7B%0A%2010%20%20%20%20%20%2F%2F%2F%20%3Csummary%3E%0A%2011%20%20%20%20%20%2F%2F%2F%20%E6%89%A7%E8%A1%8CExcel%20VBA%E5%AE%8F%E5%B8%AE%E5%8A%A9%E7%B1%BB%0A%2012%20%20%20%20%20%2F%2F%2F%20%3C%2Fsummary%3E%0A%2013%20%20%20%20%20public%20class%20ExcelMacroHelper%0A%2014%20%20%20%20%20%7B%0A%2015%20%20%20%20%20%20%20%20%20%2F%2F%2F%20%3Csummary%3E%0A%2016%20%20%20%20%20%20%20%20%20%2F%2F%2F%20%E6%89%A7%E8%A1%8CExcel%E4%B8%AD%E7%9A%84%E5%AE%8F%0A%2017%20%20%20%20%20%20%20%20%20%2F%2F%2F%20%3C%2Fsummary%3E%0A%2018%20%20%20%20%20%20%20%20%20%2F%2F%2F%20%3Cparam%20name%3D%22excelFilePath%22%3EExcel%E6%96%87%E4%BB%B6%E8%B7%AF%E5%BE%84%3C%2Fparam%3E%0A%2019%20%20%20%20%20%20%20%20%20%2F%2F%2F%20%3Cparam%20name%3D%22macroName%22%3E%E5%AE%8F%E5%90%8D%E7%A7%B0%3C%2Fparam%3E%0A%2020%20%20%20%20%20%20%20%20%20%2F%2F%2F%20%3Cparam%20name%3D%22parameters%22%3E%E5%AE%8F%E5%8F%82%E6%95%B0%E7%BB%84%3C%2Fparam%3E%0A%2021%20%20%20%20%20%20%20%20%20%2F%2F%2F%20%3Cparam%20name%3D%22rtnValue%22%3E%E5%AE%8F%E8%BF%94%E5%9B%9E%E5%80%BC%3C%2Fparam%3E%0A%2022%20%20%20%20%20%20%20%20%20%2F%2F%2F%20%3Cparam%20name%3D%22isShowExcel%22%3E%E6%89%A7%E8%A1%8C%E6%97%B6%E6%98%AF%E5%90%A6%E6%98%BE%E7%A4%BAExcel%3C%2Fparam%3E%0A%2023%20%20%20%20%20%20%20%20%20public%20void%20RunExcelMacro(%0A%2024%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20string%20excelFilePath%2C%0A%2025%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20string%20macroName%2C%0A%2026%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20object%5B%5D%20parameters%2C%0A%2027%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20out%20object%20rtnValue%2C%0A%2028%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20bool%20isShowExcel%0A%2029%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20)%0A%2030%20%20%20%20%20%20%20%20%20%7B%0A%2031%20%20%20%20%20%20%20%20%20%20%20%20%20try%0A%2032%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%2033%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23region%20%E6%A3%80%E6%9F%A5%E5%85%A5%E5%8F%82%0A%2034%20%0A%2035%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%E6%A3%80%E6%9F%A5%E6%96%87%E4%BB%B6%E6%98%AF%E5%90%A6%E5%AD%98%E5%9C%A8%0A%2036%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20(!File.Exists(excelFilePath))%0A%2037%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%2038%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20throw%20new%20System.Exception(excelFilePath%20%2B%20%22%20%E6%96%87%E4%BB%B6%E4%B8%8D%E5%AD%98%E5%9C%A8%22)%3B%0A%2039%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%2040%20%0A%2041%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%E6%A3%80%E6%9F%A5%E6%98%AF%E5%90%A6%E8%BE%93%E5%85%A5%E5%AE%8F%E5%90%8D%E7%A7%B0%0A%2042%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20(string.IsNullOrEmpty(macroName))%0A%2043%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%2044%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20throw%20new%20System.Exception(%22%E8%AF%B7%E8%BE%93%E5%85%A5%E5%AE%8F%E7%9A%84%E5%90%8D%E7%A7%B0%22)%3B%0A%2045%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%2046%20%0A%2047%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23endregion%0A%2048%20%0A%2049%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23region%20%E8%B0%83%E7%94%A8%E5%AE%8F%E5%A4%84%E7%90%86%0A%2050%20%0A%2051%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%E5%87%86%E5%A4%87%E6%89%93%E5%BC%80Excel%E6%96%87%E4%BB%B6%E6%97%B6%E7%9A%84%E7%BC%BA%E7%9C%81%E5%8F%82%E6%95%B0%E5%AF%B9%E8%B1%A1%0A%2052%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20object%20oMissing%20%3D%20System.Reflection.Missing.Value%3B%0A%2053%20%0A%2054%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%E6%A0%B9%E6%8D%AE%E5%8F%82%E6%95%B0%E7%BB%84%E6%98%AF%E5%90%A6%E4%B8%BA%E7%A9%BA%EF%BC%8C%E5%87%86%E5%A4%87%E5%8F%82%E6%95%B0%E7%BB%84%E5%AF%B9%E8%B1%A1%0A%2055%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20object%5B%5D%20paraObjects%3B%0A%2056%20%0A%2057%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20(parameters%20%3D%3D%20null)%0A%2058%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%2059%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20paraObjects%20%3D%20new%20object%5B%5D%20%7B%20macroName%20%7D%3B%0A%2060%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%2061%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%0A%2062%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%2063%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%E5%AE%8F%E5%8F%82%E6%95%B0%E7%BB%84%E9%95%BF%E5%BA%A6%0A%2064%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20int%20paraLength%20%3D%20parameters.Length%3B%0A%2065%20%0A%2066%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20paraObjects%20%3D%20new%20object%5BparaLength%20%2B%201%5D%3B%0A%2067%20%0A%2068%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20paraObjects%5B0%5D%20%3D%20macroName%3B%0A%2069%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20for%20(int%20i%20%3D%200%3B%20i%20%3C%20paraLength%3B%20i%2B%2B)%0A%2070%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%2071%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20paraObjects%5Bi%20%2B%201%5D%20%3D%20parameters%5Bi%5D%3B%0A%2072%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%2073%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%2074%20%0A%2075%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%E5%88%9B%E5%BB%BAExcel%E5%AF%B9%E8%B1%A1%E7%A4%BA%E4%BE%8B%0A%2076%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Excel.applicationClass%20oExcel%20%3D%20new%20Excel.ApplicationClass()%3B%0A%2077%20%0A%2078%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%E5%88%A4%E6%96%AD%E6%98%AF%E5%90%A6%E8%A6%81%E6%B1%82%E6%89%A7%E8%A1%8C%E6%97%B6Excel%E5%8F%AF%E8%A7%81%0A%2079%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20(isShowExcel)%0A%2080%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%2081%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%E4%BD%BF%E5%88%9B%E5%BB%BA%E7%9A%84%E5%AF%B9%E8%B1%A1%E5%8F%AF%E8%A7%
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 卢氏县| 普安县| 叶城县| 宝鸡市| 和田市| 钟山县| 新晃| 凉城县| 乐昌市| 水富县| 芜湖市| 荆州市| 松江区| 板桥市| 乌鲁木齐市| 青田县| 安塞县| 博兴县| 南陵县| 泸溪县| 正宁县| 西丰县| 广安市| 文成县| 云浮市| 喜德县| 霸州市| 张掖市| 涿州市| 漾濞| 怀化市| 扎鲁特旗| 讷河市| 澄城县| 巴中市| 景泰县| 象山县| 图片| 紫云| 宜丰县| 太仓市|