vasilek7777
Дата: Вторник, 14.08.2018, 22:18 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Добрый вечер! Написала класс, заполнила массив данными, и жду вывода данных из массива на другом листе. С одним файлом отработало, а с другим не хочет [vba]Код
Sub orderNumber() Dim i As Integer Dim j As Integer Dim inData As Worksheet Dim outData As Worksheet Dim countRowAct As Integer Dim countRowBase As Integer Dim class_facility As Class2 Dim arr As Collection Set arr = New Collection Dim myCollection As Collection Windows("20180801ksuit.xlsm").Activate Set inData = Workbooks("20180801ksuit.xlsm").Worksheets("export") ' countRowAct1 = Worksshets("export").Cells(Rows.Count, 1).End(xlUp).Row countRowAct = 4600 Set outData = Workbooks("20180801ksuit.xlsm").Worksheets("extract") For i = 2 To countRowAct + 1 Set class_facility = New Class2 class_facility.NumberMI = inData.Cells(i, 1).Value class_facility.TimeOpen = inData.Cells(i, 3).Value class_facility.TimeStartMI = inData.Cells(i, 3).Value class_facility.Company = inData.Cells(i, 5).Value class_facility.CompanyInitiator = inData.Cells(i, 7).Value class_facility.Description = inData.Cells(i, 8).Value class_facility.StatusOK = inData.Cells(i, 11).Value class_facility.Provider = inData.Cells(i, 13).Value class_facility.Cause = inData.Cells(i, 14).Value arr.Add class_facility Next i ' Set myCollection = sortArray(arr) Dim tempClass1 As Class2 Set tempClass1 = myCollection.Item(1) Dim FirstElement As New Class2 Dim element As New Class2 Set FirstClass = myCollection.Item(1) Dim numberRow As Integer numberRow = 1 For j = 1 To countRowAct Set element = myCollection.Item(j) Set FirstClass = element ' outData.Cells(numberRow, 1) = myCollection.Item(j).NumberMI outData.Cells(numberRow, 2) = myCollection.Item(j).TimeOpen outData.Cells(numberRow, 3) = myCollection.Item(j).TimeStartMI outData.Cells(numberRow, 4) = myCollection.Item(j).Company outData.Cells(numberRow, 5) = myCollection.Item(j).CompanyInitiator outData.Cells(numberRow, 6) = myCollection.Item(j).Description outData.Cells(numberRow, 7) = myCollection.Item(j).StatusOK outData.Cells(numberRow, 8) = myCollection.Item(j).Provider outData.Cells(numberRow, 9) = myCollection.Item(j).Cause numberRow = numberRow + 1 Next j End Sub
[/vba]
Добрый вечер! Написала класс, заполнила массив данными, и жду вывода данных из массива на другом листе. С одним файлом отработало, а с другим не хочет [vba]Код
Sub orderNumber() Dim i As Integer Dim j As Integer Dim inData As Worksheet Dim outData As Worksheet Dim countRowAct As Integer Dim countRowBase As Integer Dim class_facility As Class2 Dim arr As Collection Set arr = New Collection Dim myCollection As Collection Windows("20180801ksuit.xlsm").Activate Set inData = Workbooks("20180801ksuit.xlsm").Worksheets("export") ' countRowAct1 = Worksshets("export").Cells(Rows.Count, 1).End(xlUp).Row countRowAct = 4600 Set outData = Workbooks("20180801ksuit.xlsm").Worksheets("extract") For i = 2 To countRowAct + 1 Set class_facility = New Class2 class_facility.NumberMI = inData.Cells(i, 1).Value class_facility.TimeOpen = inData.Cells(i, 3).Value class_facility.TimeStartMI = inData.Cells(i, 3).Value class_facility.Company = inData.Cells(i, 5).Value class_facility.CompanyInitiator = inData.Cells(i, 7).Value class_facility.Description = inData.Cells(i, 8).Value class_facility.StatusOK = inData.Cells(i, 11).Value class_facility.Provider = inData.Cells(i, 13).Value class_facility.Cause = inData.Cells(i, 14).Value arr.Add class_facility Next i ' Set myCollection = sortArray(arr) Dim tempClass1 As Class2 Set tempClass1 = myCollection.Item(1) Dim FirstElement As New Class2 Dim element As New Class2 Set FirstClass = myCollection.Item(1) Dim numberRow As Integer numberRow = 1 For j = 1 To countRowAct Set element = myCollection.Item(j) Set FirstClass = element ' outData.Cells(numberRow, 1) = myCollection.Item(j).NumberMI outData.Cells(numberRow, 2) = myCollection.Item(j).TimeOpen outData.Cells(numberRow, 3) = myCollection.Item(j).TimeStartMI outData.Cells(numberRow, 4) = myCollection.Item(j).Company outData.Cells(numberRow, 5) = myCollection.Item(j).CompanyInitiator outData.Cells(numberRow, 6) = myCollection.Item(j).Description outData.Cells(numberRow, 7) = myCollection.Item(j).StatusOK outData.Cells(numberRow, 8) = myCollection.Item(j).Provider outData.Cells(numberRow, 9) = myCollection.Item(j).Cause numberRow = numberRow + 1 Next j End Sub
[/vba] vasilek7777
Сообщение отредактировал vasilek7777 - Вторник, 14.08.2018, 23:21
Ответить
Сообщение Добрый вечер! Написала класс, заполнила массив данными, и жду вывода данных из массива на другом листе. С одним файлом отработало, а с другим не хочет [vba]Код
Sub orderNumber() Dim i As Integer Dim j As Integer Dim inData As Worksheet Dim outData As Worksheet Dim countRowAct As Integer Dim countRowBase As Integer Dim class_facility As Class2 Dim arr As Collection Set arr = New Collection Dim myCollection As Collection Windows("20180801ksuit.xlsm").Activate Set inData = Workbooks("20180801ksuit.xlsm").Worksheets("export") ' countRowAct1 = Worksshets("export").Cells(Rows.Count, 1).End(xlUp).Row countRowAct = 4600 Set outData = Workbooks("20180801ksuit.xlsm").Worksheets("extract") For i = 2 To countRowAct + 1 Set class_facility = New Class2 class_facility.NumberMI = inData.Cells(i, 1).Value class_facility.TimeOpen = inData.Cells(i, 3).Value class_facility.TimeStartMI = inData.Cells(i, 3).Value class_facility.Company = inData.Cells(i, 5).Value class_facility.CompanyInitiator = inData.Cells(i, 7).Value class_facility.Description = inData.Cells(i, 8).Value class_facility.StatusOK = inData.Cells(i, 11).Value class_facility.Provider = inData.Cells(i, 13).Value class_facility.Cause = inData.Cells(i, 14).Value arr.Add class_facility Next i ' Set myCollection = sortArray(arr) Dim tempClass1 As Class2 Set tempClass1 = myCollection.Item(1) Dim FirstElement As New Class2 Dim element As New Class2 Set FirstClass = myCollection.Item(1) Dim numberRow As Integer numberRow = 1 For j = 1 To countRowAct Set element = myCollection.Item(j) Set FirstClass = element ' outData.Cells(numberRow, 1) = myCollection.Item(j).NumberMI outData.Cells(numberRow, 2) = myCollection.Item(j).TimeOpen outData.Cells(numberRow, 3) = myCollection.Item(j).TimeStartMI outData.Cells(numberRow, 4) = myCollection.Item(j).Company outData.Cells(numberRow, 5) = myCollection.Item(j).CompanyInitiator outData.Cells(numberRow, 6) = myCollection.Item(j).Description outData.Cells(numberRow, 7) = myCollection.Item(j).StatusOK outData.Cells(numberRow, 8) = myCollection.Item(j).Provider outData.Cells(numberRow, 9) = myCollection.Item(j).Cause numberRow = numberRow + 1 Next j End Sub
[/vba] Автор - vasilek7777 Дата добавления - 14.08.2018 в 22:18
Roman777
Дата: Среда, 15.08.2018, 07:44 |
Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация:
127
±
Замечаний:
0% ±
Excel 2007, Excel 2013
[vba]Код
Set inData = Workbooks("20180801ksuit.xlsm").Worksheets("export") Set outData = Workbooks("20180801ksuit.xlsm").Worksheets("extract")
[/vba] возможно, не открыта 20180801ksuit.xlsm. Или в ней нет листа export или extract. В какой строчке ошибка то?
[vba]Код
Set inData = Workbooks("20180801ksuit.xlsm").Worksheets("export") Set outData = Workbooks("20180801ksuit.xlsm").Worksheets("extract")
[/vba] возможно, не открыта 20180801ksuit.xlsm. Или в ней нет листа export или extract. В какой строчке ошибка то? Roman777
Много чего не знаю!!!!
Ответить
Сообщение [vba]Код
Set inData = Workbooks("20180801ksuit.xlsm").Worksheets("export") Set outData = Workbooks("20180801ksuit.xlsm").Worksheets("extract")
[/vba] возможно, не открыта 20180801ksuit.xlsm. Или в ней нет листа export или extract. В какой строчке ошибка то? Автор - Roman777 Дата добавления - 15.08.2018 в 07:44
vasilek7777
Дата: Среда, 15.08.2018, 08:24 |
Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Вот в этой строчке падает: [vba]Код
Set FirstClass = myCollection.Item(1)
[/vba] Книга открыта да и листы есть.
Вот в этой строчке падает: [vba]Код
Set FirstClass = myCollection.Item(1)
[/vba] Книга открыта да и листы есть. vasilek7777
Ответить
Сообщение Вот в этой строчке падает: [vba]Код
Set FirstClass = myCollection.Item(1)
[/vba] Книга открыта да и листы есть. Автор - vasilek7777 Дата добавления - 15.08.2018 в 08:24
Pelena
Дата: Среда, 15.08.2018, 08:31 |
Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19162
Репутация:
4412
±
Замечаний:
±
Excel 365 & Mac Excel
А что за переменная FirstClass, нигде не вижу объявления
А что за переменная FirstClass, нигде не вижу объявления Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение А что за переменная FirstClass, нигде не вижу объявления Автор - Pelena Дата добавления - 15.08.2018 в 08:31
vasilek7777
Дата: Четверг, 16.08.2018, 08:18 |
Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Спасибо! Проблема была в том, что переменная обращалась к первому элементу коллекции до ее заполнения данными.
Спасибо! Проблема была в том, что переменная обращалась к первому элементу коллекции до ее заполнения данными. vasilek7777
Ответить
Сообщение Спасибо! Проблема была в том, что переменная обращалась к первому элементу коллекции до ее заполнения данными. Автор - vasilek7777 Дата добавления - 16.08.2018 в 08:18