2009-06-23 87 views
1

我不確定上面是否有正確的術語,但我想要做的是調用一個將函數從Excel文件傳遞給它的Javascript函數,所以函數將運行並列出下一個文本框中的項目,從而允許我在該文本框中選擇正確的條目,然後選擇最終的框。如何將可變參數傳遞到使用Excel VBA的Javascript函數

這裏是我的代碼,這樣的作品,如果我不把變量放入其中: Call .Document.parentWindow.execScript("FillVendorNames('MyText')", "javascript") 如果我把任何變量,而不是「MYTEXT」,我得到一個運行時錯誤: Call .Document.parentWindow.execScript("FillVendorNames(cCode)", "javascript") Call .Document.parentWindow.execScript("FillVendorNames(.document.all.ComCode)", "javascript") 變量在代碼中聲明的較早,我可以使用立即窗口檢查值是否正確,它們都是正確的,但我仍然遇到運行時錯誤。

我想要做的是使用自動填充下拉列表的現有功能,基於在原始下拉列表中選擇的選項。 如果我在第一個下拉列表中選擇MyText,則FillVendorNames會在下一個下拉列表中提供供應商列表,以供我選擇。 然後我可以在下一個函數中輸入下一個選項,它會選擇第三個選項,但是這都是基於創建第二個下拉列表的第一個函數。 第一個列表在頁面上自動加載,但第二個列表不是,所以我不能從中選擇一個選項。 任何人都可以幫忙嗎? 謝謝。

+0

我想我們會需要你正在試圖做一個什麼位的更多信息。你傳遞給FillVendorNames的是什麼樣的變量? Excel文件位於何處?我從未見過從VBA執行Javascript。你的系統如何設置? – CoderDennis 2009-06-23 14:50:59

+0

嗨丹尼斯, 頁面上有很多代碼,我不想透露太多的工作告訴我,我不應該。 excel文件位於My Docs中。我傳遞給FillVendorNames的變量取自使用單元格(X,2)的Excel文件以選擇要發送的適當變量。 不確定你指的是什麼設置? (在這個東西的初學者位)。 該函數完全按照它應該如果我只使用文本輸入'Mytext',但如果我嘗試使用該變量它不起作用。 – DOS 2009-06-23 15:34:53

回答

1

可能存在兩個問題:

  • VBA不串
  • 內與他們的價值觀取代變量名

例子:

Dim x as String 
x = "Hello world!" 

Msgbox x 
// shows "Hello world!" 

Msgbox "x" 
// shows "x" 
  • Call永遠不需要(因爲你可以只是省略括號),並可能導致問題

例子:

Call Msgbox("x") 
// is almost exactly the same as 
Msgbox "x" 

只需使用:

With foo 
    // do stuff 
    .Document.parentWindow.execScript "FillVendorNames(" & cCode & ")", "javascript" 
    // do more stuff 
End With 
相關問題