Excel VBA Runtime Ошибка 91 Переменная объекта не установлена - PullRequest
0 голосов
/ 10 октября 2019

Я не знаю, какая переменная еще не установлена.

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 ]

1 голос
/ 10 октября 2019

вы затемнили wsData, но не установили его для какого-либо объекта (например, Set wsData = Range("A1:A10")

Но я чувствую, что wsData должен быть Worksheet объектом

Так

Dim wsData As Worksheet

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

, а затем ваш код

0 голосов
/ 10 октября 2019

Диапазон WsData не установлен, поэтому появляется ошибка 91. Он должен быть установлен на что-то, например:

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

И тогда With wsData будет в порядке.

В любом случае, учитывая тот факт, что имя wsData, вероятно, является рабочим листом, тогдаэто должно быть хорошо:

Dim wsData As Worksheet
Set wsData = Worksheets(1)

With wsData.Range("A1")
...