Создание списка проверки, «Ошибка приложения или объекта» - PullRequest
0 голосов
/ 08 февраля 2019

Я написал этот код вчера, и он работал абсолютно нормально, теперь по какой-то причине он выдает ошибку времени выполнения '1004'

Первая часть перебирает записи на втором листе и, при определенных условияхудовлетворены, использует информацию со второго листа для ссылки на третий лист, чтобы добавить запись в массив.Этот массив становится довольно большим, около 200 записей, я не знаю, каковы ограничения для массива, поэтому это может быть источником моей проблемы.

Вторая часть берет этот массив и добавляет список проверки впервый лист с этим массивом в виде выпадающего списка.

Я попытался переписать код для списка проверки на случай, если я что-то подсунул, но не смог обнаружить проблему

Действительно странно то, что это работало вчера, и ничего не должно было измениться в одночасье.

Редактировать Примечание: лист "A" является активным листом, листы "E" и "F" находятся в отдельной рабочей книге(да, эта конкретная подпрограмма ссылается на 6 отдельных листов), LAr () ранее определен как строковый массив

Редактировать 2 Примечание: Интересно, что другие списки проверки, включающие большие массивы, начали вызывать ту же ошибку в другомУчебное пособие.Кто-нибудь знает, было ли обновление или что-то еще?

Редактировать 3 Примечание: похоже, что Excel был обновлен.

i = 1
k = 0
Do While E.Cells(i, 1) <> "" 'iterate until there are no more entries'
    ReDim Preserve LAr(0 To k) 'resize the array to take another value'
    If E.Cells(i, 4).Value = "YES" Then 'case where the item is chooseable and reference is a string of multiple row numbers'
        j = CInt(Split(E.Cells(i, 2).Value, ",")(0)) 'split off the first row number'
        LAr(k) = F.Cells(j, 2).Value 'add the item name to the array'
        k = k + 1 'increase the array entry counter by 1'
    ElseIf E.Cells(i, 4).Value = "NO" Then 'case where item is chooseable and reference is a single row number'
        j = E.Cells(i, 2).Value 'get the row number'
        LAr(k) = F.Cells(j, 2).Value 'add the item name to the array'
        k = k + 1 'increase the array entry counter by 1'
    ElseIf E.Cells(i, 4).Value = "" And E.Cells(i, 3).Value = "NO" Then 'case where the item is not chooseable and is not a header'
        j = E.Cells(i, 2).Value 'get the row number'
        LAr(k) = F.Cells(j, 2).Value 'add the item name to the array'
        k = k + 1 'increase the array entry counter by 1'
    End If
    i = i + 1 'increase the iteration counter by 1'
Loop

A.Cells(3, 7).Value = "Pick"
'create validation list with the array as the choices'
With A.Cells(3, 7).Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=Join(LAr, ",")
    .InCellDropdown = True
    .InputTitle = A.Cells(3, 7).Value
End With

Я ожидаю, что это приведет к созданию списка проверки с записями изоднако массив в настоящее время выдает ошибку «1004»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...