在excel里有solver,但我在其他內嵌VBA的軟體里里想通過VB呼叫excel記錄資料后利用solver進行規劃求解時,SOLVER32.DLL并不能添加到其他軟體的參考中去,所以我覺得它是個標準庫?需要private declare?可是我并不知道其中內部函式結構,所以這個宣告陳述句應該怎么寫呢?不然不能夠呼叫 SET CELL ,SOLVER OK等命令
在其他軟體帶的VBA reference里面沒有solver,且我手動添加SOLVER32.DLL顯示不能夠添加該參考,我通過regsvr32注冊也不成功,所以感覺它是標準庫?但如何宣告使得其內部的函式能夠被呼叫呢?(我是通過excel里的錄制宏,錄制了solver求解程序的代碼,將其復制到其他軟體自帶的VBA里面,運行到solver就不ok了,在這之前已經打開了excel)
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
不要做A語言代碼修改為B語言代碼的無用功。也不要做用A語言代碼直接呼叫B語言代碼庫這樣復雜、這樣容易出錯的傻事。
只需讓A、B語言代碼的輸入輸出重定向到文本檔案,或修改A、B語言代碼讓其通過文本檔案輸入輸出。
即可很方便地讓A、B兩種語言之間協調作業。
比如:
A將請求資料寫到檔案a.txt,寫完后改名為aa.txt
B發現aa.txt存在時,讀取其內容,呼叫相應功能,將結果寫到檔案b.txt,寫完后洗掉aa.txt,改名為bb.txt
A發現bb.txt存在時,讀取其內容,讀完后洗掉bb.txt
以上A可以替換為任何一種開發語言或開發環境,B可以替換為任何一種與A不同的開發語言或開發環境。
除非A或B不支持判斷檔案是否存在、檔案讀寫和檔案更名。
但是誰又能舉出不支持判斷檔案是否存在、檔案讀寫和檔案更名的開發語言或開發環境呢?
可以將臨時檔案放在RamDisk上提高效率減少磨損磁盤。
資料的結構很復雜的話,文本檔案的格式問題可參考json或xml
共享臨時文本檔案這種行程之間的通訊方法相比其它方法的優點有很多,下面僅列出我現在能想到的:
·行程之間松耦合
·行程可在同一臺機器上,也可跨機,跨作業系統,跨硬體平臺,甚至跨國。
·方便除錯和監視,只需讓第三方或人工查看該臨時文本檔案即可。
·方便在線開關服務,只需洗掉或創建該臨時文本檔案即可。
·方便實作分布式和負載均衡。
·方便佇列化提供服務,而且幾乎不可能發生佇列滿的情況(除非硬碟空間滿)
·……
“跨語言、跨機,跨作業系統,跨硬體平臺,跨國,跨*.*的”苦海無邊,
回頭是“使用共享純文本檔案進行資訊交流”的岸!
uj5u.com熱心網友回復:
請問怎么檢測到文本有改變呢?還有如何通過文本改變這一事件觸發excel自動讀取并進行處理呢?我是想實作自動化所以在VBA里面想統一撰寫
uj5u.com熱心網友回復:
簡單就間隔一定時間輪詢檔案的上次修改時間復雜可以用API ReadDirectoryChangesW或FindFirstChangeNotification
uj5u.com熱心網友回復:
那就呼叫excel里面的vba吧excel中設定“信任對VB專案的訪問”
set xlApp = CreateObject("excel.Application")
set xlbook = xlApp.Workbooks.Open("D:\Desktop\test.xls")
set xlsheet = xlbook.worksheets("sheetA")
xlApp.visible = True
xlApp.run xlsheet.test_start_Click
uj5u.com熱心網友回復:
另外樓上那個大忽悠這堆廢話復制了一千遍了你可以看看有誰因為這堆廢話解決了問題的
uj5u.com熱心網友回復:
那只是因為你有生之年還沒遇到過不用我說的辦法就沒其它辦法的挑戰而已。
不信你試試
Apple ][上的BASIC←→Win10 64位F#
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/63946.html
標籤:VBA
