VBA调暗和设置范围全局

时间:2018-11-06 17:28:32

标签: vba set range global

我在全局使用变量可能有一个简单的问题:

我想调暗并设置各种范围,以便在不同的子菜单中使用它们。 给出的简单示例:

    Sub Variables()

    Dim rng1 as Range
    Set rng1 = Worksheets("Sheet1").Cells
    Dim rng2 as Range
    Set rng2 = Worksheets("Sheet2").Cells

    End Sub 

然后,为了在其他子代码中使用我的变量,我尝试调用我的Variable子代码,例如:

    Sub calc()

    Call Variables

    Dim i as Integer
    i = rng1.Find("Hello").Column


    With Sheet1.Cells(1, i)
         .Value = "World"
    End With

我收到错误“需要对象”。我还尝试将变量定义为Public Sub,但仍然无法正常工作。

希望您知道如何解决此问题或提供其他方法!

谢谢!

1 个答案:

答案 0 :(得分:0)

Option Explicit

Dim rng1 As Range
Dim rng2 As Range

Sub Variables()

    Set rng1 = Worksheets("Sheet1").Cells
    Set rng2 = Worksheets("Sheet2").Cells

End Sub

Sub calc()

    Variables

    Dim i As Integer
    i = rng1.Find("Hello").Column

    Sheet1.Cells(1, i).Value = "World"

End Sub

您在Sub内部进行了声明,因此无法在其他Sub中使用它们,因此这会给您带来错误。

这里的解决方案将它们放在您的过程的顶部。