访问CreateObject内部的全局变量

时间:2014-07-02 10:54:59

标签: vba global-variables

我的ThisWorkbook

中有以下代码
Public RawDataSheet As Worksheet
Public UserInputSheet As Worksheet

Private Sub Workbook_Open()

    Set RawDataSheet = Sheets("Sheet3")
    Set UserInputSheet = Sheets("Sheet1")

    PopulateCountry

End Sub

Private Sub PopulateCountry()

    LastRow = RawDataSheet.UsedRange.Rows.Count

    With RawDataSheet.Range("A2:A" & LastRow)
        V = .Value
    End With

    With CreateObject("Scripting.Dictionary")
        .comparemode = 1
        For Each E In V
            If Not .exists(E) Then .Add E, Nothing
        Next
        If .Count Then UserInputSheet.cmbCountry.List = Application.Transpose(.keys)
    End With

End Sub

我的想法是,我希望在我的代码中的任何地方使用两张作为全局变量,而不是一直在键入Sheets("Sheet1")

我的问题是我收到错误:

If .Count Then UserInputSheet.cmbCountry.List = Application.Transpose(.keys)

但这条线很好用:

If .Count Then Sheets("Sheet1").cmbCountry.List = Application.Transpose(.keys)

有人可以告诉我为什么吗?

1 个答案:

答案 0 :(得分:0)

结束更改表格上的Name属性,以便我可以这样参考。