Gyura
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Booklet, Цитата: Цитата: Dim Arr() As String, I As Long, J as Long, K As Byte, WS as Worksheet, Found as boolean, LastRow as Long, LastCol as Byte Не понял предназначения всех переменных. Точнее - понял не всех. | В этой части происходит декларирование переменных. Вы говорите какого типа будут Ваши переменные. Arr это массив (анг. Array). String, Long, Byte типы Вообще, много можно узнать из самого VBE доводя курсор на типы переменных, свойства, методы и все экселевские ключевые слова (и сам так делаю), а потом вызивая помощь (F1). Ещё много можно узнать из хороших книжек (рекоммендую книжки Уолкенбаха, загляните в ГенЛибРусЕц). Цитата: LastCol = Cells.SpecialCells(xlLastCell).Column это в переменную пишем номер последней колонки. Он, кстати, по сути своей номер или буква? | Он по сути номер. Если Вам это облегчит жизнь, Вам можно в R1C1referenceStyle галочку поставить (OfficeButton/ExcelOptions/Formulas/ в Эксель2007) и Вам всё будет понятно. Цитата: Цитата: For I = 1 To Cells.SpecialCells(xlLastCell).Row Arr = Split(Cells(I, 2), ", ") Тэкс... счётчик на I понятен. А во второй строчке что происходит? | Со Split не знаком. Тут что-то (Split) происходит в массиве (убирает знак ,?) по строчкам. Может кто-то из спецов объяснит Цитата: Цитата: For J = LBound(Arr) To Ubound(Arr) Found = False For Each WS In ThisWorkbook.Worksheets If WS.Name = Arr(J) Then Found = True Совсем не понял. Что происходит? | Определяется размер массива (LBound, UBound). Потом ищет в каждом Worksheet рабочей тетрадки (Workbook) и если название совпадает переменная становится True. Цитата: Цитата: Exit For End If Next WS If Not Found Then Set WS = Worksheets.Add WS.Name = Arr(J) End If LastRow = WS.Cells.SpecialCells(xlLastCell).Row + 1 For K = 1 To LastCol WS.Cells(LastRow, K) = Cells(I, K) Next K Next J Next I Опять - не понимаю как оно работает. | Это продолжение выше упомянутого цикла. Он проходит через все Листы (worksheets), а если не найдёт то что ищет, добавляет ещё 1 лист (именно тот который искал). |