2015-11-23 22 views
-1

我正在寫一個需要與CATIA繪圖「即時」合作的excel宏。這意味着它需要在Excel圖紙上放置一些東西,並根據用戶需求從繪圖中獲取東西。聽起來很簡單,但是.. 在我的特殊情況下,CATIA不是在本地安裝,而是在公司的服務器上安裝。爲了獲得連接用戶需要通過「CNEXT.exe/regserver」命令進行註冊,首先查找網絡磁盤上的CNEXT.exe路徑。所以他需要啓動命令:「j:\ appl ... \ CNEXT.exe/regsever」。在我的微距我需要通過引用* .TLB文件建立連接到CATIA對象:工具\參考和選擇apropriate參考(在我的情況CATIA V5 InfInterfaces對象庫CATIA V5 DraftingInterfaces對象庫Excel <-> Catia連接:tlb參考問題

References screenshot

它仍然是容易的,現在棘手部分:一切正常,只要正確,因爲我在工作和網絡磁盤可用。一旦我嘗試打開這個excel文件外,它掛起。我發現我定義的引用是指向存儲在CATIA所在的* .tlb文件中的。 :( 我正在開發的這個excel文件必須與我們需要填寫他們需要完成的手動工作表的供應商共享,以及我公司中無法訪問CATIA的其他人員能夠查看它。總的想法是,只有使用CATIA的人才能運行宏,並且手動修改工作表,並且應該爲其他人提供審查。在目前沒有訪問「j:...」網絡驅動器的情況下,沒有人能夠打開Excel文件,不說也罷推出宏我書面方式

我的問題是:?是否可以強制Excel不檢查在lanuch引用,只有通過在初始化過程之一某一步驟做,我寫了一些代碼正在檢查CATIA的可用性,其中Excel可以檢查這些參考。 另一個想法是嵌入索姆ehow * .tlb文件或他們在我的excel文件中的內容可供任何人永久使用。

我試圖在代碼中添加對* .tlb文件的引用,以表示在相同的* .tlb文件中,但是複製到我的計算機上的某個本地目錄(爲了能夠在公司外編寫代碼),但我得到了一個錯誤信息:

Error message - User-defined type not defined

小更新 - 我剛紅有關早期和後期綁定。我做了一個測試,並編寫了一個代碼,將CATIA對象聲明爲Object,而不是INFITF.Application。現在我可以不參考任何* .tlb文件進行編碼。現在問題已經消失,但智能感知也沒有了: - 我無法想象沒有它就編寫代碼 所以有一個想法出現在我的腦海,我可以使用正確指示* .tlb文件的引用進行編碼,然後在將宏發佈到總體使用之前,我可以將聲明從「CATIA特定」轉換爲對象類型,但這需要編寫一個宏來修改宏,以便爲整個代碼中的所有實例更改這些聲明:(:(..幫助我,請..

回答

0

我建議你保持兩個Excel文件 「主文件」包含宏與CATIA和「數據文件」來存儲數據通信。 「數據文件」不會有任何與catia通信的宏。

然後你可以使用表單/文件瀏覽VBA代碼在主文件中瀏覽並選擇「數據文件」,然後你就可以輕鬆讀取數據文件並執行你的操作。

我做了一個客戶,相信我,這是很容易,

編寫一個宏修改宏來改變這些聲明的所有 實例在整個代碼