Excel перебор пустых ячеек

Если Вам, допустим, нужно раскрасить все непустые ячейки в диапазоне — я бы все это тогда сделал одной командой:

Visual Basic
1
2
3
Sub asdf()
    ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants).Interior.Color = vbGreen
end sub

Добавлено через 5 часов 36 минут
Нет, ну за «спасибо» — спасибо, конечно , но я не понял?…. Попал? Если все-таки нужно перебирать (какой смысл их красить?) тогда лучше сделать так, думаю:

Visual Basic
1
2
3
4
5
6
sub asdf()
   dim cC as range
   for each cC in activesheet.usedrange.specialcells(xlcelltypeconstants)
      cC.Select        ' select - здесь просто для демонстрации
   next
end sub

Или загнать в массив и потом из него веревки вить, как моя жена из меня :

Visual Basic
1
2
3
4
5
6
7
8
Sub ffffff()
   Dim marr(), cC As Range, i&
   ReDim marr(1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants).Cells.Count, 1 To 1)
   i = 1
      For Each cC In ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants)
         marr(i, 1) = cC.Value:   i = i + 1
      Next
End Sub

Короче — пластилин. Что захотите, то и сделаете.
Кстати, если нужно что-то так же с пустыми — меняете xlcelltypeconstants на xlcelltypeblanks

Добавлено через 10 минут
То-есть, перебором загнать в массив.

Перебор и печать непустых ячеек столбца

dolson

Дата: Суббота, 05.08.2017, 10:12 |
Сообщение № 1

Группа: Пользователи

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Добрый день! Прошу помочь в моей рутине. Есть документ в котором необходимо ввести артикул и распечатать его. Я обычно делаю так: вставляю в столбец все артикулы и по очереди приравниваю их к ячейке которая находится в области печати и распечатываю. В макросах я не силен, пытался написать простой цикл, который по очереди приравнивет значение ячейки и распечатывает до пустой ячейки, но все впустую. Подскажите как правильно сделать. Заранее спасибо. Пример в приложении.

 

Ответить

Michael_S

Дата: Суббота, 05.08.2017, 10:43 |
Сообщение № 2

Группа: Друзья

Ранг: Старожил

Сообщений: 2012


Репутация:

373

±

Замечаний:
0% ±


Excel2016

Я обычно делаю так: вставляю в столбец все артикулы и по очереди приравниваю их к ячейке которая находится в области печати и распечатываю.

Непонятно, что нужно распечатать.
Можно в примере чуть больше информации?

 

Ответить

dolson

Дата: Суббота, 05.08.2017, 11:36 |
Сообщение № 3

Группа: Пользователи

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

в примере в области печати ячейка А1, ее нужно распечатать сперва со значением ячейки Е1, затем Е2, затем Е3 и т.д. до пустой ячейки

 

Ответить

Kuzmich

Дата: Суббота, 05.08.2017, 12:12 |
Сообщение № 4

Группа: Проверенные

Ранг: Ветеран

Сообщений: 707


Репутация:

154

±

Замечаний:
0% ±


Excel 2003

[vba]

Код

Sub iPrint()
Dim i As Long
Dim iLastRow As Long
iLastRow = Cells(Rows.Count, «E»).End(xlUp).Row
  For i = 1 To iLastRow
    Range(«A1») = Cells(i, «E»)
    Range(«A1:B5»).PrintOut copies:=1
  Next
End Sub

[/vba]

 

Ответить

dolson

Дата: Суббота, 05.08.2017, 12:26 |
Сообщение № 5

Группа: Пользователи

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Спасибо! Все работает!

 

Ответить

Skip to content

Как сделать перебор диапазона ячеек

На чтение 2 мин. Просмотров 14k.

Что делает макрос: Этот базовый макрос показывает вам простой способ сделать перебор диапазона ячеек по одной и выполнить какое-либо действие.

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как этот код работает
  4. Как использовать

Как макрос работает

В этом макросе используются две переменные объекта Range. Одна из переменных отражает объем данных, с которым мы работаем, в то время как другая используется для хранения каждой отдельной клетки в диапазоне. Потом мы используем оператор For Each, чтобы активировать или принести каждую ячейку в фокусе целевого диапазона.

Код макроса

Sub PereborDiapazonaYacheek()
'Шаг 1: Объявить переменные
Dim MyRange As Range
Dim MyCell As Range
'Шаг 2: Определение целевого диапазона.
Set MyRange = Range("D6:D17")
'Шаг 3: Запуск цикла через диапазон.
For Each MyCell In MyRange
'Шаг 4: Какое-либо действие с каждой ячейкой.
If MyCell.Value > 3000 Then
MyCell.Font.Bold = True
End If
'Шаг 5: Перейти к следующей ячейке в диапазоне
Next MyCell
End Sub

Как этот код работает

  1. Макрос объявляет две переменные объекта Range. Одна из них, называется MyRange, держит весь целевой диапазон. Другая, называемый MyCell, держит каждую ячейку в диапазоне, так как макрос проводит цикл через них один за другим.
  2. На шаге 2 мы заполняем переменную MyRange с целевым диапазоном. В этом примере мы используем Range («D6:D17»). Если ваш целевой диапазон является именованным, можно просто ввести его название — Range («MyNamedRange»).
  3. На этом этапе макрос начинает цикл через каждую ячейку в целевом диапазоне, активизируя ее.
  4. После того, как ячейка активируется, можно с ней что-то сделать. Это «что-то» на самом деле зависит от поставленной задачи. Вы можете удалять строки, когда активная ячейка имеет определенное значение, или вы можете вставить строку между каждой активной ячейки. В этом примере макрос меняется шрифт полужирный для любого элемента, который имеет значение больше, чем 3000.
  5. На шаге 5, макрос возвращается назад, чтобы получить следующую ячейку. После активации всех ячеек в целевом диапазоне, макрос заканчивает работу.

Как использовать

Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:

  1. Активируйте редактор Visual Basic, нажав ALT + F11 на клавиатуре.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код.

Содержание

  1. Как сделать перебор диапазона ячеек
  2. Как макрос работает
  3. Код макроса
  4. Как этот код работает
  5. Как использовать
  6. Excel функция перебора значений
  7. Excel функция перебора значений
  8. Использование операторов For Each. Next
  9. Проход по диапазону ячеек
  10. Выход из цикла For Each. Next до его завершения
  11. Использование цикла For Each. Next для итерации в классе VBA
  12. См. также
  13. Поддержка и обратная связь

Как сделать перебор диапазона ячеек

Что делает макрос: Этот базовый макрос показывает вам простой способ сделать перебор диапазона ячеек по одной и выполнить какое-либо действие.

Как макрос работает

В этом макросе используются две переменные объекта Range. Одна из переменных отражает объем данных, с которым мы работаем, в то время как другая используется для хранения каждой отдельной клетки в диапазоне. Потом мы используем оператор For Each, чтобы активировать или принести каждую ячейку в фокусе целевого диапазона.

Код макроса

Как этот код работает

  1. Макрос объявляет две переменные объекта Range. Одна из них, называется MyRange, держит весь целевой диапазон. Другая, называемый MyCell, держит каждую ячейку в диапазоне, так как макрос проводит цикл через них один за другим.
  2. На шаге 2 мы заполняем переменную MyRange с целевым диапазоном. В этом примере мы используем Range («D6:D17»). Если ваш целевой диапазон является именованным, можно просто ввести его название — Range («MyNamedRange»).
  3. На этом этапе макрос начинает цикл через каждую ячейку в целевом диапазоне, активизируя ее.
  4. После того, как ячейка активируется, можно с ней что-то сделать. Это «что-то» на самом деле зависит от поставленной задачи. Вы можете удалять строки, когда активная ячейка имеет определенное значение, или вы можете вставить строку между каждой активной ячейки. В этом примере макрос меняется шрифт полужирный для любого элемента, который имеет значение больше, чем 3000.
  5. На шаге 5, макрос возвращается назад, чтобы получить следующую ячейку. После активации всех ячеек в целевом диапазоне, макрос заканчивает работу.

Как использовать

Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:

  1. Активируйте редактор Visual Basic, нажав ALT + F11 на клавиатуре.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код.

Источник

Excel функция перебора значений

«=ЕСЛИ(R16=0;R6;ЕСЛИ(R6=0;R7;ЕСЛИ(R7=0;R8;R16)))» — сама формула
Задумка такова. Ячейка R16 пустая, R6-R8 с данными. Необходимо чтоб в столбце D, в любой ячейке отображалась ячейка R16, но только в том случае если в ней есть запись. В противном случае отображается R6. Если и в R6 нет записи, то R7 и так далее.
На данный момент отображается только ячейка R6, если её сделать пустой, то R7 не отобразится.
Моя формула располагается только в ячейке D11, в прилагаемом файле.

Делаю график дежурств, чтоб он автоматически расставлял от 3-х до 6-ти фамилий по всему месяцу в определённом порядке.

«=ЕСЛИ(R16=0;R6;ЕСЛИ(R6=0;R7;ЕСЛИ(R7=0;R8;R16)))» — сама формула
Задумка такова. Ячейка R16 пустая, R6-R8 с данными. Необходимо чтоб в столбце D, в любой ячейке отображалась ячейка R16, но только в том случае если в ней есть запись. В противном случае отображается R6. Если и в R6 нет записи, то R7 и так далее.
На данный момент отображается только ячейка R6, если её сделать пустой, то R7 не отобразится.
Моя формула располагается только в ячейке D11, в прилагаемом файле.

Делаю график дежурств, чтоб он автоматически расставлял от 3-х до 6-ти фамилий по всему месяцу в определённом порядке. dog144

Сообщение «=ЕСЛИ(R16=0;R6;ЕСЛИ(R6=0;R7;ЕСЛИ(R7=0;R8;R16)))» — сама формула
Задумка такова. Ячейка R16 пустая, R6-R8 с данными. Необходимо чтоб в столбце D, в любой ячейке отображалась ячейка R16, но только в том случае если в ней есть запись. В противном случае отображается R6. Если и в R6 нет записи, то R7 и так далее.
На данный момент отображается только ячейка R6, если её сделать пустой, то R7 не отобразится.
Моя формула располагается только в ячейке D11, в прилагаемом файле.

Делаю график дежурств, чтоб он автоматически расставлял от 3-х до 6-ти фамилий по всему месяцу в определённом порядке. Автор — dog144
Дата добавления — 14.09.2014 в 18:08

Источник

Excel функция перебора значений

Добрый день ! Подскажите если знаете. )

Как сделать в excel перебор чисел с определенным шагом. Скажем хочу задать excel найти из диапазона цифр (от 587,01 до 591,99 с шагом 0,01) число при умножении которого на число из диапазона (от 3170,01 до 3200,99 с шагом 0,01) получим результат 1886000. Важно что бы все числа были точными до сотых без применения округлений. Т.е числа в которых после запятой встречаются цифры дальше сотых неприемлемы но и округления применять нельзя.

Заранее благодарен за ответ !

Добрый день ! Подскажите если знаете. )

Как сделать в excel перебор чисел с определенным шагом. Скажем хочу задать excel найти из диапазона цифр (от 587,01 до 591,99 с шагом 0,01) число при умножении которого на число из диапазона (от 3170,01 до 3200,99 с шагом 0,01) получим результат 1886000. Важно что бы все числа были точными до сотых без применения округлений. Т.е числа в которых после запятой встречаются цифры дальше сотых неприемлемы но и округления применять нельзя.

Заранее благодарен за ответ ! Rafting

Сообщение Добрый день ! Подскажите если знаете. )

Как сделать в excel перебор чисел с определенным шагом. Скажем хочу задать excel найти из диапазона цифр (от 587,01 до 591,99 с шагом 0,01) число при умножении которого на число из диапазона (от 3170,01 до 3200,99 с шагом 0,01) получим результат 1886000. Важно что бы все числа были точными до сотых без применения округлений. Т.е числа в которых после запятой встречаются цифры дальше сотых неприемлемы но и округления применять нельзя.

Заранее благодарен за ответ ! Автор — Rafting
Дата добавления — 10.04.2017 в 15:08

sboy Дата: Понедельник, 10.04.2017, 15:52 | Сообщение № 2
Rafting Дата: Вторник, 11.04.2017, 12:49 | Сообщение № 3
_Boroda_ Дата: Вторник, 11.04.2017, 13:28 | Сообщение № 4
Скажи мне, кудесник, любимец ба’гов.
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

Ответить

Gustav Дата: Вторник, 11.04.2017, 13:33 | Сообщение № 5

Да сделайте обыкновенную «таблицу умножения»: в ячейки B1:SF1 с шагом 0,01 протяните 499 значений от 587,01 до 591,99 (колонки), в ячейки A2:A3100 — 3099 значений от 3170,01 до 3200,99. В ячейку B2 — формулу =$A2*B$1 и протяните на весь диапазон B2:SF3100. Дальше обычный Поиск (по Ctrl+F) и ищем значение 1886000.

Показал бы в файле, но файл получился 23 мегабайта. Но в принципе я всё и так рассказал.

P.S. Можно подсветить результаты условным форматированием с формулой: =ЦЕЛОЕ(B2)=1886000 . У меня поиском по кнопке «Найти все» нашлась 51 ячейка (в одной, правда, чуть меньше 1885999,9964, но поскольку отображалась как искомая строка, то тоже поучаствовала). Это было при ширине колонок 80 пикселей. А если увеличить ширину до, скажем, 100 пикселей (при этом в ячейках будут видны 3 знака после запятой), то останутся 50 честных вариантов.

Да сделайте обыкновенную «таблицу умножения»: в ячейки B1:SF1 с шагом 0,01 протяните 499 значений от 587,01 до 591,99 (колонки), в ячейки A2:A3100 — 3099 значений от 3170,01 до 3200,99. В ячейку B2 — формулу =$A2*B$1 и протяните на весь диапазон B2:SF3100. Дальше обычный Поиск (по Ctrl+F) и ищем значение 1886000.

Показал бы в файле, но файл получился 23 мегабайта. Но в принципе я всё и так рассказал.

P.S. Можно подсветить результаты условным форматированием с формулой: =ЦЕЛОЕ(B2)=1886000 . У меня поиском по кнопке «Найти все» нашлась 51 ячейка (в одной, правда, чуть меньше 1885999,9964, но поскольку отображалась как искомая строка, то тоже поучаствовала). Это было при ширине колонок 80 пикселей. А если увеличить ширину до, скажем, 100 пикселей (при этом в ячейках будут видны 3 знака после запятой), то останутся 50 честных вариантов. Gustav

Сообщение Да сделайте обыкновенную «таблицу умножения»: в ячейки B1:SF1 с шагом 0,01 протяните 499 значений от 587,01 до 591,99 (колонки), в ячейки A2:A3100 — 3099 значений от 3170,01 до 3200,99. В ячейку B2 — формулу =$A2*B$1 и протяните на весь диапазон B2:SF3100. Дальше обычный Поиск (по Ctrl+F) и ищем значение 1886000.

Показал бы в файле, но файл получился 23 мегабайта. Но в принципе я всё и так рассказал.

P.S. Можно подсветить результаты условным форматированием с формулой: =ЦЕЛОЕ(B2)=1886000 . У меня поиском по кнопке «Найти все» нашлась 51 ячейка (в одной, правда, чуть меньше 1885999,9964, но поскольку отображалась как искомая строка, то тоже поучаствовала). Это было при ширине колонок 80 пикселей. А если увеличить ширину до, скажем, 100 пикселей (при этом в ячейках будут видны 3 знака после запятой), то останутся 50 честных вариантов. Автор — Gustav
Дата добавления — 11.04.2017 в 13:33

Rafting Дата: Вторник, 11.04.2017, 14:05 | Сообщение № 6

Я уже делал как предлагает Gustav в итоге тратится очень много времени.

Конкретное описание хотелки:

Получаю смету на определенную сумму 1 886 000
Площадь работ по смете 3200 кв.м
Когда заношу данные в электронную систему, система выводит цену за 1 кв.метр равную 1 886 000/3200 = 589,38 (цифра округляется, реальный же результат 589,375. Система выводит значение до сотых) В дальнейшем система начинает ругаться на то что 3200*589,38 не равно 1 886 000. Допустимо менять значения 3200 и 589,38 в небольшом диапазоне. Главное что бы при умножении двух значений получался конкретный результат 1 886 000.
Так как задача регулярная, ищу способ как задать excel цифру которую нужно получить путем умножения числа X на Y. где X — это диапазон значений от 3100,00 до 3300,00 с шагом 0,01 а Y — это диапазон значений от 560,00 до 600,00 с шагом 0,01
Надеюсь понятно объяснил. Заранее благодарю за ответ.

Я уже делал как предлагает Gustav в итоге тратится очень много времени.

Конкретное описание хотелки:

Получаю смету на определенную сумму 1 886 000
Площадь работ по смете 3200 кв.м
Когда заношу данные в электронную систему, система выводит цену за 1 кв.метр равную 1 886 000/3200 = 589,38 (цифра округляется, реальный же результат 589,375. Система выводит значение до сотых) В дальнейшем система начинает ругаться на то что 3200*589,38 не равно 1 886 000. Допустимо менять значения 3200 и 589,38 в небольшом диапазоне. Главное что бы при умножении двух значений получался конкретный результат 1 886 000.
Так как задача регулярная, ищу способ как задать excel цифру которую нужно получить путем умножения числа X на Y. где X — это диапазон значений от 3100,00 до 3300,00 с шагом 0,01 а Y — это диапазон значений от 560,00 до 600,00 с шагом 0,01
Надеюсь понятно объяснил. Заранее благодарю за ответ. Rafting

Сообщение Я уже делал как предлагает Gustav в итоге тратится очень много времени.

Конкретное описание хотелки:

Получаю смету на определенную сумму 1 886 000
Площадь работ по смете 3200 кв.м
Когда заношу данные в электронную систему, система выводит цену за 1 кв.метр равную 1 886 000/3200 = 589,38 (цифра округляется, реальный же результат 589,375. Система выводит значение до сотых) В дальнейшем система начинает ругаться на то что 3200*589,38 не равно 1 886 000. Допустимо менять значения 3200 и 589,38 в небольшом диапазоне. Главное что бы при умножении двух значений получался конкретный результат 1 886 000.
Так как задача регулярная, ищу способ как задать excel цифру которую нужно получить путем умножения числа X на Y. где X — это диапазон значений от 3100,00 до 3300,00 с шагом 0,01 а Y — это диапазон значений от 560,00 до 600,00 с шагом 0,01
Надеюсь понятно объяснил. Заранее благодарю за ответ. Автор — Rafting
Дата добавления — 11.04.2017 в 14:05

Источник

Использование операторов For Each. Next

Операторы For Each. Next повторяют блок операторов для каждого объекта в коллекции или каждого элемента массива. Visual Basic автоматически присваивает переменную при каждом выполнении цикла. Например, следующая процедура добавляет 10 к значению каждой ячейки в диапазоне от A1 до A10.

Указанный ниже код перебирает все элементы массива и устанавливает для каждого из них значение переменной-счетчика I.

Проход по диапазону ячеек

Цикл For Each. Next можно использовать для прохода по диапазону ячеек. Приведенная ниже процедура проходит по диапазону ячеек A1:D10 на листе Sheet1 и присваивает каждой ячейке, абсолютное значение которой меньше 0,01, значение 0 (ноль).

Выход из цикла For Each. Next до его завершения

Из цикла For Each. Next можно выйти с помощью оператора Exit For. Например, при возникновении ошибки можно использовать оператор Exit For в блоке True оператора If. Then. Else или оператора Select Case, который используется непосредственно для проверки ошибок. Если ошибка не возникает, оператор If…Then…Else получает значение False, и цикл продолжает работу.

В следующем примере выполняется поиск первой ячейки диапазона A1:B5, не содержащей число. Если такая ячейка найдена, выводится сообщение и выполняется выход из цикла с помощью оператора Exit For.

Использование цикла For Each. Next для итерации в классе VBA

Для каждого. Следующие циклы не только итерируют массивы и экземпляры объекта Collection . Они также могут выполнять итерацию в созданном вами классе VBA.

Ниже приведен пример, в котором показано, как это сделать.

Создайте модуль класса в редакторе Visual Basic (VBE) и присвойте ему имя CustomCollection. cc1

Вставьте следующий код в только что созданный модуль.

Экспортируйте этот модуль в файл и сохраните его в локальном расположении. cc2

После экспорта модуля откройте экспортированный файл, используя текстовый редактор (программы Блокнот в Windows должно быть достаточно). Содержимое файла должно выглядеть следующим образом.

Используя текстовый редактор, удалите знак ‘ из первой строки под текстом Property Get NewEnum() As IUnknown в файле. Сохраните измененный файл.

В редакторе VBE удалите класс, созданный из проекта VBA, и не экспортируйте его при появлении соответствующего запроса. cc3

Импортируйте файл, из которого вы удалили знак ‘ , назад в VBE. cc4

Выполните следующий код, чтобы проверить возможность итерации в своем созданном пользовательском классе VBA, используя VBE и текстовый редактор.

Сноски Описание
[cc1] Вы можете создать модуль класса, выбрав Class Module (Модуль класса) в меню Insert (Вставка). Вы можете переименовать модуль класса, изменив его свойства в окне Properties (Свойства).
[cc2] Вы можете активировать диалоговое окно Экспорт файла, выбрав Export File (Экспорт файла) в меню File (Файл).
[cc3] Вы можете удалить модуль класса из VBE, выбрав Remove Item (Удалить элемент) в меню File (Файл).
[cc4] Вы можете импортировать файл внешнего модуля класса, запустив диалоговое окно Импорт файла (выберите Import File (Импорт файла) в меню File (Файл)).

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

Adblock
detector

 

Добрый день, подскажите пожалуйста макрос что бы перебирал значения в первом столбце, и при соблюдении определенного условия добавлял новую пустую строку и красил ее в другой цвет.
В моем случае когда он натыкается на ячейку с другим значением (если все значения А и следующее B то между ними пустую строку)
Приблизительный алгоритм знаю, но с VBA дружу не сильно и сам написать не могу.
В примере более наглядно видно что нужно получить. Буду очень благодарен.
 

 

Владимир

Пользователь

Сообщений: 8196
Регистрация: 21.12.2012

#2

16.06.2017 16:21:40

Код
Sub qqq()
Dim i&, lstr&
lstr = Cells(Rows.count, 1).End(xlUp).row
For i = 2 To lstr
    If Cells(i, 1) <> Cells(i + 1, 1) Then
        Rows(i + 1).Insert
        Cells(i + 1, 1).Resize(, 3).Interior.Color = RGB(191, 191, 191)
        i = i + 1
    End If
Next
End Sub

Изменено: Владимир16.06.2017 16:32:33

«..Сладку ягоду рвали вместе, горьку ягоду я одна.»

 

Владимир, подскажите пожалуйста, функцию что бы меняло цвет

 

Владимир, попробовал использовать макрос, выбивает ошибку Application-define or object-defined error

 

Владимир

Пользователь

Сообщений: 8196
Регистрация: 21.12.2012

Поправил код.
См. #2

«..Сладку ягоду рвали вместе, горьку ягоду я одна.»

 

Владимир, отлично, то что нужно, а можно также что бы он в конце таблицы делал 2 серых пустых полосы. При условии что длина таблицы будет меняться

 

Владимир

Пользователь

Сообщений: 8196
Регистрация: 21.12.2012

#7

16.06.2017 16:40:48

Добавьте строку после Next:

Код
Cells(i + 2, 1).Resize(2, 3).Interior.Color = RGB(191, 191, 191)

«..Сладку ягоду рвали вместе, горьку ягоду я одна.»

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

#8

16.06.2017 17:03:08

Владимир,прошу прощения, позволил себе немного подправить ваш код, думаю этот будет более корректно работать.

Код
Sub qqq()
Dim i&, lstr&
lstr = Cells(Rows.Count, 1).End(xlUp).Row
For i = lstr To 2 Step -1
    If Cells(i, 1) <> Cells(i + 1, 1) Then
        Rows(i + 1).Insert
        Cells(i + 1, 1).Resize(, 3).Interior.Color = RGB(191, 191, 191)
    End If
Next
End Sub

«Все гениальное просто, а все простое гениально!!!»

 

Спасибо всем огромное за помощь!!!

 

Владимир

Пользователь

Сообщений: 8196
Регистрация: 21.12.2012

#10

16.06.2017 17:10:38

Да пожалуйста, поправляйте.

«..Сладку ягоду рвали вместе, горьку ягоду я одна.»

Like this post? Please share to your friends:
  • Excel перебор всех вариантов
  • Excel первыя ячейка диапазона
  • Excel первые три символа ячейки
  • Excel первые три буквы
  • Excel первые два слова в ячейке