在VBA

2015-12-06 52 views
0
調用字典及其變量從另一個模塊

我已經存儲了一個模塊(單詞數)在詞典:在VBA

Sub WebcamDict() 


    Dim dict As Object, Key, val 
    Set dict = CreateObject("Scripting.Dictionary") 


    Key = "14 Mile Hill North": val = Array("URL", "Title") 
    dict.Add Key, val 
    Key = "14 Mile Hill South": val = Array("URL", "Title") 
    dict.Add Key, val 
    Key = "Ash Fork East": val = Array("URL", "Title") 
    dict.Add Key, val 
    ... 

End Sub 

在不同的模塊,我試圖調用字典及其變量是這樣的:

Sub Images() 
    Call Module6.WebcamDict 

    ComboBoxList = Array(CStr(ComboBox4), CStr(ComboBox5), CStr(ComboBox6), CStr(ComboBox7)) 


    i = 1 


    For Each Ky In ComboBoxList 
     ActiveWindow.Selection.SlideRange.Shapes("Webcam" & CStr(i)).Fill.UserPicture (dict.Item(Ky)(0)) 
     ActiveWindow.Selection.SlideRange.Shapes("Webcam" & CStr(i)).TextFrame.DeleteText 
     ActiveWindow.Selection.SlideRange.Shapes("Webcam" & CStr(i)).Line.Visible = msoFalse 
     ActiveWindow.Selection.SlideRange.Shapes("Webcam" & CStr(i) & "_Text").TextFrame.TextRange.Text = dict.Item(Ky)(1) 


     i = i + 1 


    Next 


    Set dict = Nothing 


End Sub 

變量「i」和「祈」雙方似乎是由 Debug.Print語句測試,以做工精細。但是,我得到的錯誤(對象所需)這條線:

ActiveWindow.Selection.SlideRange.Shapes("Webcam" & CStr(i)).Fill.UserPicture (dict.Item(Ky)(0)) 

如果我只是包括它完美的作品在同一模塊中的詞典,但我會需要從多個不同的模塊調用這個,所以我會需要能夠以某種方式將其與其變量一起調用。有任何想法嗎?謝謝!

回答

1

從子刪除Dim dict As Object(保持所有其他狀態)。在模塊的頂部放線

Public dict As Object 

這將打開dict成一個全局變量是在項目的任何地方訪問。在你當前的代碼中,當WebCamdict返回時,它是一個局部變量,它超出了範圍。

+0

完美!謝謝! – hunter21188