Excel VBA运行时错误91对象变量未设置

时间:2019-10-10 17:52:51

标签: arrays vba variables option explicit

我不知道尚未设置的变量。

Option Explicit
Option Base 1

Sub ReverseOrder()
    Dim ReverseOrder As Variant
    Dim nEmployee As String
    Dim nEmployees As Integer
    Dim ssn As Variant
    Dim wsData As Range
    Dim i As Integer


    With wsData.Range("A1")
        nEmployees = Range(.Offset(1, 0), .End(xlDown)).Rows.Count
        ReDim Employees(1 To nEmployees)
        ReDim ssn(1 To nEmployees)

        For i = 1 To nEmployees
            Employees(i) = .Offset(i, 0).Value
            ssn(i) = .Offset(i, 0).Value
        Next

        For i = nEmployees To 1 Step -1
            .Offset(nEmployees - i + 1, 3).Value = Employees(i)
            .Offset(nEmployees - i + 1, 4).Value = ssn(i)
        Next i
    End With
End Sub

enter image description here

2 个答案:

答案 0 :(得分:1)

您使wsData变暗,但未将其设置为任何对象(例如Set wsData = Range("A1:A10")

但是我觉得wsData应该是Worksheet对象

所以

Dim wsData As Worksheet

Set wsData = Worksheets("myWorksheetName") ' change "myWorksheetName" to wanted actual sheet name

然后输入您的代码

答案 1 :(得分:0)

未设置WsData范围,因此显示91错误。应该将其设置为某些值,例如:

Set WsData = Worksheets(1).Range("A1")

然后With wsData就可以了。

无论如何,考虑到wsData名称可能是一个工作表这一事实,那么应该没问题:

Dim wsData As Worksheet
Set wsData = Worksheets(1)

With wsData.Range("A1")