Добрый день. Подскажите - как макросом укоротить или вытянуть таблицу. В столбцах T:W - находятся слова и числа. И нужно их перевести в таблицу C:F - между зелеными диапазонами. Но непонятно - как изменять эту таблицу, потому что копируемый диапазон - нужно вставить между зелеными элементами таблицы (не затронув зеленые ячейки).
Добрый день. Подскажите - как макросом укоротить или вытянуть таблицу. В столбцах T:W - находятся слова и числа. И нужно их перевести в таблицу C:F - между зелеными диапазонами. Но непонятно - как изменять эту таблицу, потому что копируемый диапазон - нужно вставить между зелеными элементами таблицы (не затронув зеленые ячейки).Dalm
Но непонятно - как изменять эту таблицу, потому что копируемый диапазон - нужно вставить между зелеными элементами таблицы (не затронув зеленые ячейки).
Вы можете в макросе определить границы диапазона по изменению цветов ячеек, а также применить операторы смещения диапазонов с указанием опций
Код
Shift:=xlDown
или
Код
Shift:=xlUp
Dalm, добрый день.
Цитата
Но непонятно - как изменять эту таблицу, потому что копируемый диапазон - нужно вставить между зелеными элементами таблицы (не затронув зеленые ячейки).
Вы можете в макросе определить границы диапазона по изменению цветов ячеек, а также применить операторы смещения диапазонов с указанием опций
У меня есть представление, как должен выглядеть макрос, но с ячейками, выделенными цветом. С бесцветными ячейками будет сложнее, может быть кто и возьмётся.
Dalm,
Цитата
а как макрос должен выглядеть?
У меня есть представление, как должен выглядеть макрос, но с ячейками, выделенными цветом. С бесцветными ячейками будет сложнее, может быть кто и возьмётся.NikitaDvorets
Добрый день. Подскажите - как макросом укоротить или вытянуть таблицу. В столбцах T:W - находятся слова и числа. И нужно их перевести в таблицу C:F - между зелеными диапазонами. Но непонятно - как изменять эту таблицу, потому что копируемый диапазон - нужно вставить между зелеными элементами таблицы (не затронув зеленые ячейки).
Добрый день. Подскажите - как макросом укоротить или вытянуть таблицу. В столбцах T:W - находятся слова и числа. И нужно их перевести в таблицу C:F - между зелеными диапазонами. Но непонятно - как изменять эту таблицу, потому что копируемый диапазон - нужно вставить между зелеными элементами таблицы (не затронув зеленые ячейки).Dalm
Sub u_871() Application.ScreenUpdating = False 'отключаем обновление экрана 'допустим, мы знаем, что верх таблицы заканчивается строкой 7 'допустим, мы знаем, что низ таблицы начинается с "Низ таблицы" в столбце C 'и другое нам типа известно. 'тогда, мы ищем строку "Низ таблицы" a = Application.Match("Низ таблицы", Range("c:c"), 0) 'это как формула =ПОИСКПОЗ("Низ таблицы";C:C;0) 'если между верхом и низом есть строки - удалим их нафиг If a > 8 Then Range("c8:f" & a - 1).Delete Shift:=xlUp 'посчитаем сколько строк нам нужно вставить b = Cells(Rows.Count, "t").End(xlUp).Row c = Cells(Rows.Count, "v").End(xlUp).Row d = Application.Max(b, c) e = d - 5 + 7 'если есть, что вставлять If d > 5 Then Range("c8:f" & e).Insert Shift:=xlDown 'вставляем строки Range("t6:w" & d).Copy Range("c8") 'копируем, вставляем End If Application.ScreenUpdating = True 'включаем обновление экрана End Sub
[/vba]
[vba]
Код
Sub u_871() Application.ScreenUpdating = False 'отключаем обновление экрана 'допустим, мы знаем, что верх таблицы заканчивается строкой 7 'допустим, мы знаем, что низ таблицы начинается с "Низ таблицы" в столбце C 'и другое нам типа известно. 'тогда, мы ищем строку "Низ таблицы" a = Application.Match("Низ таблицы", Range("c:c"), 0) 'это как формула =ПОИСКПОЗ("Низ таблицы";C:C;0) 'если между верхом и низом есть строки - удалим их нафиг If a > 8 Then Range("c8:f" & a - 1).Delete Shift:=xlUp 'посчитаем сколько строк нам нужно вставить b = Cells(Rows.Count, "t").End(xlUp).Row c = Cells(Rows.Count, "v").End(xlUp).Row d = Application.Max(b, c) e = d - 5 + 7 'если есть, что вставлять If d > 5 Then Range("c8:f" & e).Insert Shift:=xlDown 'вставляем строки Range("t6:w" & d).Copy Range("c8") 'копируем, вставляем End If Application.ScreenUpdating = True 'включаем обновление экрана End Sub