VBA 调暗并设置范围全局

VBA Dim and 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 

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

    Sub calc()

    Call Variables

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


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

我收到错误 "Object required"。我也尝试将我的变量定义为 Public Sub 但它仍然不起作用。

我希望你知道如何解决这个问题或如何给出不同的方法!

谢谢!

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中使用它们,所以这就是为什么它给你一个错误。

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