无法在VBA中设置范围变量

时间:2019-03-20 15:33:57

标签: excel vba

我是VBA的新手,正在尝试学习变量。我有一段简单的代码,应该将一个变量设置为一个范围:

Sub Test()
    Dim DataRange As Range
    DataRange = Workbooks("Rooms.csv").Sheets(1).Range("A3", "AK17068")
End Sub

当我跑步时,我得到Run-time error '91': Object variable or With block variable not set,这...不是我对Dim语句所做的吗?这是什么意思?

我看到in the MS docs在某些情况下(我不完全了解何时)应该使用Option Strict On,但是当我尝试使用它时,出现语法错误(Expected: Base or Compare or Explicit or Private) 。我认为我从根本上误解了它应该如何工作(通过培训是C ++开发人员)

3 个答案:

答案 0 :(得分:7)

这里:

Sub Test()
    Dim DataRange As Range
    Set DataRange = Workbooks("Rooms.csv").Sheets(1).Range("A3", "AK17068")
End Sub

Object变量设置为Set

答案 1 :(得分:4)

您需要设置数据范围

Set DataRange = Workbooks("Rooms.csv").Sheets(1).Range("A3", "AK17068")

答案 2 :(得分:1)

使用 With Statement 引用工作簿和工作表的好处是,如果您打算设置更多范围,则可以不重复工作簿和工作表的名称。见下文:

Option Explicit

Sub Test()

    Dim DataRange As Range, DataRange2 As Range

    With Workbooks("Rooms.csv").Worksheets("Sheet1") '<- Using *With Statement* referring to the workbook & worksheet
        Set DataRange = .Range("A3", "AK17068")
        Set DataRange2 = .Range("A1") '<- For example purpoces
    End With

End Sub 
相关问题