Добрый вечер. Прошу помощи с задачей. Пример и желаемый результат прилагаю. Внутри макрос по копированию строк, указанное в ячейке количество раз.. но это не то...
Добрый вечер. Прошу помощи с задачей. Пример и желаемый результат прилагаю. Внутри макрос по копированию строк, указанное в ячейке количество раз.. но это не то...cmivadwot
Sub u_74() Application.ScreenUpdating = False a = Range("a5").End(xlDown).Row For Each b In Range("am5:ap" & a) c = b.Value If c <> "" Then d = c & "," e = Len(d) f = Replace(d, ",", "") g = Len(f) h = e - g For i = 1 To h j = b.Row o = b.Column k = InStr(d, ",") l = Left(d, k - 1) m = l * 3 + 3 n = l * 3 + 5 p = Cells(Rows.Count, "a").End(xlUp).Row + 1 r = Application.Max(p, a + 2) Range("a" & j & ":ap" & j).Copy Range("a" & r) Range("a" & r & ":ap" & r).ClearContents Range("a" & j & ":e" & j).Copy Range("a" & r) Range(Cells(j, m), Cells(j, n)).Copy Cells(r, m) Range("aj" & j & ":al" & j).Copy Range("aj" & r) Cells(r, o) = i Range("aq" & r) = Cells(3, o).Value Range("ar" & r) = i Range("aq" & r & ":ar" & r).Interior.Color = 65535 d = Mid(d, k + 1, e) Next End If Next Application.ScreenUpdating = True End Sub
[/vba]
[vba]
Код
Sub u_74() Application.ScreenUpdating = False a = Range("a5").End(xlDown).Row For Each b In Range("am5:ap" & a) c = b.Value If c <> "" Then d = c & "," e = Len(d) f = Replace(d, ",", "") g = Len(f) h = e - g For i = 1 To h j = b.Row o = b.Column k = InStr(d, ",") l = Left(d, k - 1) m = l * 3 + 3 n = l * 3 + 5 p = Cells(Rows.Count, "a").End(xlUp).Row + 1 r = Application.Max(p, a + 2) Range("a" & j & ":ap" & j).Copy Range("a" & r) Range("a" & r & ":ap" & r).ClearContents Range("a" & j & ":e" & j).Copy Range("a" & r) Range(Cells(j, m), Cells(j, n)).Copy Cells(r, m) Range("aj" & j & ":al" & j).Copy Range("aj" & r) Cells(r, o) = i Range("aq" & r) = Cells(3, o).Value Range("ar" & r) = i Range("aq" & r & ":ar" & r).Interior.Color = 65535 d = Mid(d, k + 1, e) Next End If Next Application.ScreenUpdating = True End Sub
Nic70y, День добрый. Супер, но не совсем так (выделил красным) и если не затруднит, прокомментировать строки. Нет пока возможности оригинальный файл выложить. Придется адаптировать под него.
Nic70y, День добрый. Супер, но не совсем так (выделил красным) и если не затруднит, прокомментировать строки. Нет пока возможности оригинальный файл выложить. Придется адаптировать под него.cmivadwot
Nic70y, День добрый, спасибо.Как подправить макрос.. для копирования не 3 , а 2 столбиков? С диапазонами вроде как все понятно как править, а вот m = l * 3 + 3 'столбец копирования левый, n = l * 3 + 5 'столбец копирования правый, Range(Cells(j, m), Cells(j, n)).Copy Cells(r, m) 'копируем - вставляем три ячейки я со своим французским никак не вкурю.
Nic70y, День добрый, спасибо.Как подправить макрос.. для копирования не 3 , а 2 столбиков? С диапазонами вроде как все понятно как править, а вот m = l * 3 + 3 'столбец копирования левый, n = l * 3 + 5 'столбец копирования правый, Range(Cells(j, m), Cells(j, n)).Copy Cells(r, m) 'копируем - вставляем три ячейки я со своим французским никак не вкурю.cmivadwot
Nic70y, Спасибо. разобрался с предыдущим вариантом. в моем случае m = l * 2 + 21 'столбец копирования левый, n = l * 2 + 22, вроде так.. заработало как должно.. я закранил по незнанию, что такое +3 и +5
Nic70y, Спасибо. разобрался с предыдущим вариантом. в моем случае m = l * 2 + 21 'столбец копирования левый, n = l * 2 + 22, вроде так.. заработало как должно.. я закранил по незнанию, что такое +3 и +5cmivadwot
Nic70y, пока нет времени, позже возможно, пока старый вариант работает.затык был в +21 +22. Позже еще возможно будет вариация, где цифры записаны не через запятую, а каждая в отдельном столбце.т.е пп1.. в шапке в объединенных столбцах, а цифры под ним в отдельных столбцах. Либо перекрутить формулой сцепку через запятую и тем же макросом, либо новый алгоритм придумывать.
Nic70y, пока нет времени, позже возможно, пока старый вариант работает.затык был в +21 +22. Позже еще возможно будет вариация, где цифры записаны не через запятую, а каждая в отдельном столбце.т.е пп1.. в шапке в объединенных столбцах, а цифры под ним в отдельных столбцах. Либо перекрутить формулой сцепку через запятую и тем же макросом, либо новый алгоритм придумывать.cmivadwot
Nic70y, Доброй ночи. Я так понял в 8 сообщении вообще, кроме строка шапки таблицы и верхняя строка таблицы указывать ничего не надо. На самом деле пп и не совсем пп((( и они там объединены по вертикали и не одинаково...... вручную корректится. А нет ли такой возможности, чтоб всплыло сообщение "Эй ты, кожаный мешок, укажи верхнюю строку таблицы и строку шапки таблицы (наверно ввод вручную, а не тыканьем в ячейку )" далее указать диапазон(столбцы) распедаливания (пп* или даже ткнуть выбор каждой, из 4, ячейки пп), и в какие столбцы сложить распедаленные пп* и номера. Вот я тут.... нафантазировал))))))) может еще есть нюансы.. Нашел.. один из очень близких к оригиналу файл...
Nic70y, Доброй ночи. Я так понял в 8 сообщении вообще, кроме строка шапки таблицы и верхняя строка таблицы указывать ничего не надо. На самом деле пп и не совсем пп((( и они там объединены по вертикали и не одинаково...... вручную корректится. А нет ли такой возможности, чтоб всплыло сообщение "Эй ты, кожаный мешок, укажи верхнюю строку таблицы и строку шапки таблицы (наверно ввод вручную, а не тыканьем в ячейку )" далее указать диапазон(столбцы) распедаливания (пп* или даже ткнуть выбор каждой, из 4, ячейки пп), и в какие столбцы сложить распедаленные пп* и номера. Вот я тут.... нафантазировал))))))) может еще есть нюансы.. Нашел.. один из очень близких к оригиналу файл...cmivadwot
Nic70y, Огонь. Сегодня окончательно подтвердилось, что если в 3 семестре есть занятия, а промежуточного контроля в 3 семестре нет, то необходимо еще в 4 семестре отобразить цифры третьего. И сейчас еще заметил пп10. Пп всего 4 значения экзамен, зач, зач с оцен, и курсовой...
Nic70y, Огонь. Сегодня окончательно подтвердилось, что если в 3 семестре есть занятия, а промежуточного контроля в 3 семестре нет, то необходимо еще в 4 семестре отобразить цифры третьего. И сейчас еще заметил пп10. Пп всего 4 значения экзамен, зач, зач с оцен, и курсовой...cmivadwot
Nic70y, пк под рукой уже нет. Если цифры п пп. 1,2,4 . А в 3 семестре есть цифры то их записывать в 4 семестре. (Копировать в строку 4 семестра еще и цифры третьего. Как на приложенном ранее файле..выделено зеленым.
Nic70y, пк под рукой уже нет. Если цифры п пп. 1,2,4 . А в 3 семестре есть цифры то их записывать в 4 семестре. (Копировать в строку 4 семестра еще и цифры третьего. Как на приложенном ранее файле..выделено зеленым.cmivadwot