2016-02-27 4 views
-1

Как указано, я получаю объект, требуемый при прохождении через каталог. Забавно, что он объявлен. Я только начинаю получать эту проблему, когда начинаю перебирать папку, а не только рабочий лист. Я попытался активировать рабочую книгу, но это тоже не сработало. Я переместил все вокруг, чтобы увидеть, был ли компилятор придирчивым и ничего еще. Может быть, свежий набор глаз поможет мне определить мою ошибку? БлагодаряТребуется объект Ошибка при цикле через DIR()

Код:

Sub MultiDimArray() 

Dim Z As Long 
Dim A1 As Long 
Dim ws As Integer 
Dim wbk As Workbook 
Dim Filename As String 
Dim Path As String 
Dim myArray(9, 5) As String 

Path = "C:\Users\Ashleysaurus\Desktop\doug\test\TheFolder" 
Filename = Dir(Path & "*.xlsx") 

Do While Len(Filename) > 0 
    Set wbk = Workbooks.Open(Path & Filename) 
    wbk.Activate 
    Set ws = ActiveWorkbook.Worksheets.Count 
    For i = 1 To ws 
     For x = LBound(myArray, 1) To UBound(myArray, 1) 
      For y = LBound(myArray, 2) To UBound(myArray, 2) 
        myArray(x, y) = "Position " & "x=" & x & ", y=" & y & ", z=" & Z & ", A1=" & A1 
        ActiveWorkbook.Worksheets(i).Cells(x + 1, y + 1).Value = myArray(x, y) 
      Next y 
     Next x 
     Z = Z + 1 
    Next i 
    wbk.Close True 
    x = 0 
    y = 0 
    Z = 0 
    A1 = A1 + 1 
    Filename = Dir 
Loop 
End Sub 
+2

Подсказка: 'Count' не является объектом:' Установите ws = ActiveWorkbook.Worksheets.Count'. Похоже, вы сохранили имя старой переменной после изменения ее использования. –

+0

Ahhhh Я вижу. Если я заберу «set» в этой строке, все будет работать отлично. За исключением того, что код цикла не выполняется. Я поиграю еще и попытаюсь понять, почему. –

ответ

0

взять Set от Set Ws = ActiveWorkbook.Worksheets.Count

и решает объект требуется вопрос.

ТАКЖЕ

Оказывается, что:

Path = "C:\Users\Ashleysaurus\Desktop\doug\test\TheFolder" 

должен быть

Path = "C:\Users\Ashleysaurus\Desktop\doug\test\TheFolder" & "\" 

Кажется, я всегда скучаю, что O_o

+0

Не быть придирчивым, но это не ответ на ваш вопрос, связанный с ошибкой «Обязательный объект». –

+0

хорошо, что вы могли сформулировать свой первоначальный комментарий в качестве ответа и получить репутацию. По крайней мере, я позабочусь о том, чтобы выполнить оставшиеся вопросы на случай, если кто-то еще заботится. –

Смежные вопросы