2016-09-24 53 views
-1

我有一個問題,以一個字的應用程序的變量,通過Excel宏將參數傳遞給單詞宏:從Excel宏

dim wrdApp as Word.Application 
dim wrdDoc as Word.Document 
dim PRODUCT_NAME as string 
PRODUCT_NAME="This thing" 
Set wrdApp = CreateObject("Word.Application") 
wrdApp.Visible = True 
Set wrdDoc = wrdApp.Documents.Add 
wrdApp.Run "MAIN_TOC", PRODUCT_NAME 

這產生運行時錯誤「450」:
錯誤數的論據或無效的財產分配。

我在做什麼錯?

+0

你能後的字碼'MAIN_TOC「 – Comintern

+0

,這其中就有問題:( 我沒有設置Word宏正確 一旦我做了正確的聲明,該變量傳遞: 子MAIN_TOC (產品爲字符串) 當然,這打破了宏觀的話,但完全無關的原因 –

+0

我明白了,這可能無法解析沒有這些信息。 – Comintern

回答

0

作爲背景,我在Excel中處理多個表格,並通過剪貼板將表格傳遞給Word。 我需要一些方法讓Word知道我通過的是哪張桌子。使用「WrdApp.Run」MAIN_TOC「,PRODUCT_NAME」,我認爲 將允許Word使用正確的名稱處理每個剪貼板。 實際發生的事情是,PRODUCT_NAME已通過,但剪貼板的內容已被刪除。

我最終的解決方案是將表格名稱放在表格本身中。 單詞宏將獲得剪貼板,然後查看錶的第一個單元格以獲取表名。 完成後,Excel將通過下一個表並重復該過程。

所有正在工作。 ?