Excel добавить строку при условии

doc-insert-row-based-on-value-1

Предположим, у вас есть диапазон данных, и вы хотите автоматически вставлять пустые строки выше или ниже определенного значения в Excel, например, автоматически вставлять строки ниже нулевого значения, как показано ниже. В Excel нет прямого способа решить эту задачу, но я могу ввести код макроса для автоматической вставки строк на основе определенного значения в Excel.
Вставить строку ниже на основе значения ячейки с помощью VBA

Вставьте строку выше на основе значения ячейки с помощью Kutools for Excel хорошая идея3


Чтобы вставить строку на основе значения ячейки, запустив VBA, выполните следующие действия:

1. Нажмите Alt + F11 одновременно, а Microsoft Visual Basic для приложений окно выскакивает.

2. Нажмите Вставить > Модули, затем вставьте ниже код VBA во всплывающий Модули окно.

VBA: вставьте строку ниже на основе значения ячейки.

Sub BlankLine()
	'Updateby20150203
	Dim Rng As Range
	Dim WorkRng As Range
	On Error Resume Next
	xTitleId                   = "KutoolsforExcel"
	Set WorkRng                = Application.Selection
	Set WorkRng                = Application.InputBox("Range", xTitleId, WorkRng.Address, Type: = 8)
	Set WorkRng                = WorkRng.Columns(1)
	xLastRow                   = WorkRng.Rows.Count
	Application.ScreenUpdating = False
	For xRowIndex = xLastRow To 1 Step - 1
		Set Rng                   = WorkRng.Range("A" & xRowIndex)
		If Rng.Value = "0" Then
			Rng.Offset(1, 0).EntireRow.Insert Shift: = xlDown
		End If
	Next
	Application.ScreenUpdating = True
End Sub

3. Нажмите F5 ключа или Run нажмите кнопку, появится диалоговое окно и выберите столбец, содержащий ноль. Смотрите скриншот:
doc-insert-row-based-on-value-2

4. Нажмите OK. Тогда пустые строки будут вставлены ниже нулевого значения.
doc-insert-row-based-on-value-3

Функции:

1. Если вы хотите вставить строки на основе другого значения, вы можете изменить 0 на любое значение, которое вы хотите в VBA: Если Rng.Value = «0», то.

2. Если вы хотите вставить строки выше нуля или другого значения, вы можете использовать приведенный ниже код vba.

VBA: вставить строку выше нулевого значения:

Sub BlankLine()
	'Updateby20150203
	Dim Rng As Range
	Dim WorkRng As Range
	On Error Resume Next
	xTitleId                   = "KutoolsforExcel"
	Set WorkRng                = Application.Selection
	Set WorkRng                = Application.InputBox("Range", xTitleId, WorkRng.Address, Type: = 8)
	Set WorkRng                = WorkRng.Columns(1)
	xLastRow                   = WorkRng.Rows.Count
	Application.ScreenUpdating = False
	For xRowIndex = xLastRow To 1 Step - 1
		Set Rng                   = WorkRng.Range("A" & xRowIndex)
		If Rng.Value = "0" Then
			Rng.EntireRow.Insert Shift: = xlDown
		End If
	Next
	Application.ScreenUpdating = True
End Sub

doc-insert-row-based-on-value-4


Если вы не знакомы с VBA, вы можете попробовать Kutools for Excel‘s Выбрать определенные ячейки утилита, а затем вставьте строки выше.

После установки Kutools for Excel, пожалуйста, сделайте следующее:(Бесплатная загрузка Kutools for Excel Сейчас!)

1. Выберите список, из которого вы хотите найти определенные ячейки, и нажмите Кутулс > Выберите > Выбрать определенные ячейки. Смотрите скриншот:
doc вставить строку на основе значения 9

2. В появившемся диалоговом окне отметьте Весь ряд вариант, а затем перейдите, чтобы выбрать Равно от Конкретный тип список, а затем введите значение, которое вы хотите найти, в правом текстовом поле. Смотрите скриншот:
doc вставить строку на основе значения 6

3. Нажмите Ok, и появится диалоговое окно, напоминающее количество выбранных строк, просто закройте его.

4. Поместите курсор в одну выбранную строку и щелкните правой кнопкой мыши, чтобы выбрать Вставить из контекстного меню. Смотрите скриншот:
doc вставить строку на основе значения 7

Теперь строки вставляются выше на основе определенного значения.
doc вставить строку на основе значения 8


Относительные статьи:

  • Вставить пустые строки в Excel

Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (43)


Оценок пока нет. Оцените первым!

Добавление строк в зависимости от условия

ILYA_SERGEEVICH_1987

Дата: Четверг, 06.09.2018, 20:37 |
Сообщение № 1

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

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

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


Excel 2013

Доброго времени суток подскажите как можно решить задачу по автоматическому добавлению строк при определённых условия. Есть определённый массив данных на Листе 1 (Примера) данные могут повторяться. На Листе 2 сведён другой массив данных вся загвоздка заключается что строк на Листе №2 может быть и 2 и 10 и 50 строк с одинаковыми значением для поиска. В результате данных манипуляций должны получить таблицу Лист 3 (сводную) куда добавлены данные по определённому алгоритму, а именно сведена таблица из листа №1 и в зависимости от того сколько имеется строк на листе №2 с определённым искомым значением столько строк и должно быть добавлено в сводную, данные в Листе 1 и 2 могут постоянно меняться или обновляться в зависимости от этого Лист №3 так же должен меняться по вышеперечисленному алгоритму. Подскажите как можно решить данную задачу, через стандартные функции решения найти не смог, если оно есть будет очень хорошо. Дума что через VBA решение должно быть точно. Заранее спасибо.

К сообщению приложен файл:

7807303.xlsx
(10.7 Kb)

 

Ответить

Pelena

Дата: Пятница, 07.09.2018, 08:23 |
Сообщение № 2

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Здравствуйте.
Можно формулами подтянуть во вторую таблицу значения из первой и построить сводную.
Или с помощью PowerPivot объединить таблицы и построить сводную.


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

ILYA_SERGEEVICH_1987

Дата: Пятница, 07.09.2018, 19:10 |
Сообщение № 3

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

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

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


Excel 2013

Здравствуйте. Спасибо что ответили. Честно говоря не умею пользоваться сводными таблицами, или может быть всё решать через функции и макросы привык. Обязательно конечно научусь пригодится. Но проблема в том что таблицей предстоит пользоваться «чайникам» в EXCEL. Им нужно просто вставить 2 отчета в определённые листы и должны получить третий. Какие либо действия с их стороны могут привести к фатальным ошибкам ввиду низкой компетенции.

 

Ответить

_Igor_61

Дата: Понедельник, 10.09.2018, 20:58 |
Сообщение № 4

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

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

Сообщений: 504


Репутация:

90

±

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


Excel 2007

Здравствуйте! Проверяйте:

Сообщение отредактировал _Igor_61Понедельник, 10.09.2018, 21:23

 

Ответить

ILYA_SERGEEVICH_1987

Дата: Среда, 10.10.2018, 18:35 |
Сообщение № 5

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

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

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


Excel 2013

Огромное спасибо то что нужно, если не затруднит выложите оба макроса с комментариями что за что отвечает, дальше я уже сам додумаю все

 

Ответить

Какой формулой можно вставить в таблицу пустые строки (или строчку шапки) с нужным шагом?

Как в Excel вставить шапку таблицы с определенным шагом?

Как в таблицу Excel вставить пустую строку через строку?

Как в Эксель таблицу вставить строку через каждые несколько строк?

Возможно ли в ячейке Эксель таблицы указать через сколько строчек вставлять строку?

Считаем что таблица записана начиная с ячейки A4

и необходимо распечатать строчки через одну.

Составим формулу, печатающую пустую строку для ячеек у которых остаток от деления на шаг +1 равен нулю, а сами ячейки сдвигаются на число добавленных ячеек: ЦЕЛОЕ(( СТРОКА() — СТРОКА($A$4))/2 ).

если надо печатать через строчку (шаг+1=2) то формула выглядит так:

=ЕСЛИ( ОСТАТ(( СТРОКА() — СТРОКА($A$4)+1) ;2)=0 ; » «; ДВССЫЛ(«R»&( СТРОКА(A4)- ЦЕЛОЕ(( СТРОКА() — СТРОКА($A$4))/2 ))&»C»&СТОЛБЕЦ( A4);0))

Эту формулу надо растянуть на всё поле таблицы.

если требуется делить таблицу каждый раз на новое количество строк, то количество строк можно записать в ячейку ($Q$1) и печатать уже не пустую строку а строку шапки (ячейка A$3). Это легко можно сделать формулой:

=ЕСЛИ( ОСТАТ(( СТРОКА()- СТРОКА($A$4)+1) ; $Q$1+1)=0; A$3; ДВССЫЛ( «R»&(СТРОКА(A4)- ЦЕЛОЕ(( СТРОКА()- СТРОКА($A$4))/( $Q$1+1)) )&»C»&СТОЛБЕЦ( A4);0))

Как добавить пустую строку в excel после каждой заполненной строки

Иногда пользователь, составляя таблицу, забывает ввести некоторые данные. Когда он начинает понимать, что пропустил ценную информацию или забыл её дополнить, то пытается вместить все необходимое в готовую таблицу. Однако таким образом можно допустить ряд ошибок, в результате которых могут исчезнуть другие данные, или же просто ничего не изменится.

Обычно так случается с новичками, которые мало что знают о функциональности табличного процессора Excel и о том, как добавлять строки с информацией в готовую таблицу. Можно испробовать несколько действенных методов, которые помогут добавить или убрать строки в листе и в самой таблице.

Как добавить строку в таблицу Эксель

Табличный процессор Эксель является самой удобной и функциональной программой для составления таблиц. Он обладает специальными функциями, которые помогают изменять вид уже готовых документов. Как профессионалы, так и новички могут без проблем добавлять строки в абсолютно каждом уголке объекта.

Способ 1: листание таблицы

Добавление строк колесиком мыши

    Для вставки пустой строчки в конец таблицы можно просто листать колёсиком мыши вниз. Однако для начала нужно довести ползунок, который находится слева, вниз до предела. При этом будут появляться новые строки. Их количество зависит от того, сколько Вы их будет листать.

    Данный способ действительно работает, если Вы создаёте или редактируете таблицу сразу в Экселе.

Способ 2: добавление клавишей «Tab», выделение клавишей «Enter»

Такой способ подходит в том случае, если необходимо удлинить строки или добавить столбцы и ячейки. Здесь понадобится исключительно клавиатура.

    Нажимаем на клавишу «Tab». С помощью этих действий мы сможем добавить и выделить ячейки, строки и столбцы. С каждым нажатием будет появляться выделятся следующая ячейка.

Клавиша Таб для добавления строк

Способ 3: добавление клавишей «Enter»

Этот метод сильно напоминает предыдущий. Здесь снова будет задействована клавиша «Enter».

    Чтобы добавить нижнюю строку в таблице, достаточно ввести данные в ячейку или строку, и нажать клавишу «Enter». Тогда Вас перекинет на следующую строку, которая будет принадлежать таблице.

Клавиша Ентер для добавления строк

Значок молнии

Способ 4: растягивание таблицы

Вставить строку можно с помощью мышки, не используя клавиатуру.

    Для этого курсор наводим к маленькому правому уголочку таблицы. Стандартный курсор поменяется на двойные чёрные стрелки. Теперь задерживаем левую кнопку мыши и растягиваем таблицу.

Растягивание таблицы

Результаты растягивания таблицы

Способ 5: вставка через контекстное меню

Существует ещё один способ вставки дополнительной строки.

    Для этого подведите курсор мыши к строчке, над которой необходимо добавить другую. Когда вид курсора станет похож на белый крест, клацнете правой кнопкой мыши, после чего откроется контекстное меню. Находите пункт «Вставка», и выбираете нужное действие. Нас сейчас интересует «Строки таблицы выше». Нажимаем туда и над выделенной строкой появится новая.

Контекстное меню

Панель инструментов

Способ 6: добавление нескольких строчек

    Для того чтобы вставить несколько строчек, воспользуемся методом №5. Только выделяем не одну строчку, а несколько. После клацаем правой кнопкой мыши, и в контекстном меню выбираем «Вставка» и «Строки таблицы выше».

Несколько строк

Как вставлять строки в разных местах

Многих мучает именно этот вопрос, так как часто приходится добавлять строки в разных частях таблицы. Однако это дело станет долгим и нудным, если вставлять всё время по одной строчке. А если их будет сотня, и находиться они будут в разных частях таблицы? Тогда нам поможет именно этот способ.

  1. Нажмите и удерживайте клавишу «CTRL», выделите поочерёдно нужные строки (к примеру, шестая, тридцатая, сотая). Теперь действуйте по методу 5: заходите в меню и выбираете вставку строк. Во время вставки ссылки, как абсолютные, так и относительные, настраиваются в автоматической форме.

Несмежные строки: выделение

Теперь Вы знаете, как добавлять строки в различные участки готовой таблицы Эксель. Как видите, способов немало, тем более, каждый из них рабочий и простой. Возможно, предоставленная информация пригодится Вам в будущем и Вы воспользуетесь ею.

Добавление строк в excel по условию

Иногда необходимо вставлять большое количество пустых строк по различным условиям и в ручную этот процесс занимает много времени. Для упрощения данного процесса в функционал надстройки добавлена функция «Вставить пустые строки».

Чтобы воспользоваться функцией перейдите на вкладку «VBA-Excel» в разделе «Ячейки и диапазоны» откройте меню «Вставить», выберите «Вставить пустые строки».

Вставка пустых строк

Появится диалоговое окно с выбором опций для вставки строк. Необходимо выбрать опции в соответствии с тем какая стоит задача.

Вставка произвольного количества строк

Для этого в поле «Условие» необходимо выбрать пункт «Вставить N пустых строк»
Для того что бы указать в какую строку вставлять пустые строки нужно в поле «Начиная со строки» указать номер нужной строки.
Это можно сделать двумя способами:

  • Вручную ввести номер строки.
  • Нажать кнопку «…» расположенную рядом с полем «Начиная со строки», после чего откроется окно выбора строки. Далее нужно выбрать любую ячейку находящуюся в нужной строку и нажать «Ок»

После чего в поле Количество указать сколько пустых строк нужно вставить. И нажать кнопку «Ок»

Например, нужно вставить 5 пустых строк с 7 строки. тогда ввод в диалоговое окно будет выглядеть следующим образом:

Настройки для вставки n строк в Excel

Результат вставки пустых строк

Вставка строк через заданное количество строк

Для этого в поле «Условие» должно быть выбрано «Вставлять через каждые N строк».
В данном режиме нужное количество строк вставляется через равные промежутки в пределах, указанных в поле «Диапазон»
В поле «Диапазон» можно указать «Текущий лист» или «Выделение».

  1. В первом случае вставляются пустые строки с первой строки до последней, в которой есть какие-либо значения.
  2. Во втором пустые строки вставляются только в рамках текущего выделения.

Как и в первом режиме нужно указать строку, с которой начнет работать алгоритм и количество пустых строк
А в поле «Вставлять через» указывается сколько строк будет пропускаться при вставке следующих пустых строк.

Например, нужно вставить 2 пустые строки через каждые 2 строки, начиная с 6 строки, тогда диалоговое окно примет следующий вид:

Вставка строк через несколько строк

Результат вставки строк через две строки

Вставка строк при изменении значения в столбце

Для этого в поле «Условие» должно быть выбрано «Вставлять по изменению значения в столбце»

В этом режиме пустые строки вставляются в том случае если в выбранном столбце меняется значение.

Для указания столбца, по которому просматриваются значения, нужно в поле «Столбец» ввести имя столбца. Это можно сделать двумя способами:

  • Вручную ввести имя столбца
  • Нажать кнопку «…» расположенную рядом с полем «Столбец», после чего откроется окно выбора столбца. Далее нужно выбрать любую ячейку находящуюся в нужном столбце и нажать «Ок»

Например, вам нужно отделить каждый новый артикул в столбце А пустой строкой. Тогда диалоговое окно примет вид:

Вставка строк в Excel при изменении значения в столбце

Результат вставки строк по изменению значения в столбце

Вставка строк при определенном значении в столбце

Для этого в поле «Условие» должно быть выбрано «Вставлять по значению в столбце».

В этом случае вставка пустых строк происходит по совпадению значения выбранного столбца со значением указанным в поле «Значение».

Например, нужно вставить пустые строки там, где в столбце «Флаг» находится значение «f». В этом случае выбираем следующие настройки:

7 / 7 / 1

Регистрация: 02.03.2011

Сообщений: 307

1

Добавление строк по условию

27.06.2021, 14:05. Показов 4811. Ответов 11


Студворк — интернет-сервис помощи студентам

Приветствую!
Есть прайс лист на 1000 позиций в excel,
нужно сделать второй лист, чтоб там отображались только те строки прайса, у которых столбец «Количество» не пустой.
То есть строки добавлялись по условию, на листе прайса она например 10, а на новом листе она окажется первой.
Подскажите решение задачи)

Название Код товара Цена Кол-во Сумма Магазин
Кабель силовой ВВГ-Пнг(А)-LS 2*1.5 1847757 43,55     ЭТМ
Кабель силовой ВВГ-Пнг(А)-LS 3*1.5 5242955 62,04 1   ЭТМ
Кабель силовой ВВГ-нг(А)-LS 4*1.5 6751203 83,11     ЭТМ
Кабель силовой ВВГ-Пнг(А)-LS 2х2.5 7174594 69,84 1   ЭТМ

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

Название Код товара Цена Кол-во Сумма Магазин
Кабель силовой ВВГ-Пнг(А)-LS 3*1.5 5242955 62,04 1 62,04 ЭТМ
Кабель силовой ВВГ-Пнг(А)-LS 2х2.5 7174594 69,84 1 69,84 ЭТМ



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

27.06.2021, 14:05

11

1232 / 670 / 238

Регистрация: 22.12.2015

Сообщений: 2,089

27.06.2021, 14:33

2

xxxspeed, отфильтруйте фильтром по строке «кол-во» и скопируйте отфильтрованные значения на новый лист путем обычного выделить-копировать-вставить.



0



7 / 7 / 1

Регистрация: 02.03.2011

Сообщений: 307

27.06.2021, 14:35

 [ТС]

3

Это понятно, мне просто нужно автоматом, что б все делалось.
При изменении листа прайс, данные сразу менялись на втором листе.

Я написал формулы, чтоб на втором листе данные сразу отображались, но они отображаются в тех же строках.
Можно отсортировать и все будет ок.
Если есть вариант с авто сортировкой, при изменении таблица автоматически заново сортируется.



0



Dinoxromniy

1232 / 670 / 238

Регистрация: 22.12.2015

Сообщений: 2,089

27.06.2021, 14:46

4

Цитата
Сообщение от xxxspeed
Посмотреть сообщение

Либо если есть вариант с авто сортировкой, при изменении таблица автоматически заново сортируется.

Сложно сказать — кроме вас вашу таблицу никто видел.
Если таблицу оформить через ctrl+L как умную таблицу, и она на листе единственная — то достаточно в модуль листа скопировать код:

Visual Basic
1
2
3
Private Sub Worksheet_Change(ByVal Target As Range)
Me.ListObjects.Item(1).Range.AutoFilter Field:=4, Criteria1:="<>"
End Sub

Только если вы вручную вбиваете новые данные — начинайте с 4 столбца — который «количество», иначе таблица скроет новую строчку раньше, чем вы успеете ввести все ячейки строки. С копированием проблем быть не должно.



1



7 / 7 / 1

Регистрация: 02.03.2011

Сообщений: 307

27.06.2021, 15:48

 [ТС]

5

Цитата
Сообщение от Dinoxromniy
Посмотреть сообщение

Сложно сказать — кроме вас вашу таблицу никто видел.

Краткий фрагмент таблицы я опубликовал.

С листа прайс на второй лист данные я переношу формулой =ЕСЛИ(Прайс!$D2=»»;»»;Прайс!A2).

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

Добавлено через 12 минут
Поправлюсь, при изменении колонки D (а лучше при изменении колонки в которой написано «Кол-во») на первом листе, срабатывал этот код на втором листе.
Потому что когда вышеуказанная формула изменяет выводимые значения код не срабатывает.



0



5942 / 3154 / 698

Регистрация: 23.11.2010

Сообщений: 10,524

27.06.2021, 16:11

6

Цитата
Сообщение от xxxspeed
Посмотреть сообщение

Краткий фрагмент таблицы я опубликовал

это картинка, тут даже названий столбцов не видно, это к тому

Цитата
Сообщение от xxxspeed
Посмотреть сообщение

при изменении колонки D



0



7 / 7 / 1

Регистрация: 02.03.2011

Сообщений: 307

27.06.2021, 16:23

 [ТС]

7

Цитата
Сообщение от Fairuza
Посмотреть сообщение

это картинка, тут даже названий столбцов не видно, это к тому

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



0



7 / 7 / 1

Регистрация: 02.03.2011

Сообщений: 307

27.06.2021, 16:27

 [ТС]

8

Вот файл, но без кода



0



7 / 7 / 1

Регистрация: 02.03.2011

Сообщений: 307

27.06.2021, 16:31

 [ТС]

9

Вот файл.
В файле выше из за удаления кода не корректный второй лист.



0



xxxspeed

7 / 7 / 1

Регистрация: 02.03.2011

Сообщений: 307

27.06.2021, 16:53

 [ТС]

10

Вопрос вроде решился, разобрался.
При переключении на второй лист происходит обновление.
Изменил код вот так:

Visual Basic
1
2
3
Private Sub Worksheet_Activate()
Me.ListObjects.Item(1).Range.AutoFilter Field:=4, Criteria1:="<>"
End Sub



0



1232 / 670 / 238

Регистрация: 22.12.2015

Сообщений: 2,089

29.06.2021, 10:08

11

xxxspeed, прошу прощения — руки не дошли написать.
Ваше решение оптимально, единственно — саму таблицу второго листа нужно руками растягивать (ну или изначально она должна быть много больше, чем на первом). В принципе, это можно программно делать. Насколько у вас актуально добавление строк в первую таблицу (если всего строк 1000, то во второй таблице можно сделать сразу 2000 и не париться с дополнительными решениями. Либо вставлять новые строки в табл2 каждый раз, когда добавились строки в табл1).



0



xxxspeed

7 / 7 / 1

Регистрация: 02.03.2011

Сообщений: 307

29.06.2021, 21:59

 [ТС]

12

Цитата
Сообщение от Dinoxromniy
Посмотреть сообщение

Ваше решение оптимально

Вот еще решение которое мне подсказали

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub Worksheet_Activate()
Dim sh As Worksheet, sh2 As Worksheet, arr, arr2, i As Long, n As Long, x As Long, k As Long, lr As Long, lr2 As Long
Set sh = Worksheets("Прайс"): Set sh2 = Worksheets("Прайс2")
lr = sh.Cells(Rows.Count, 1).End(xlUp).Row
lr2 = sh2.Cells(Rows.Count, 1).End(xlUp).Row
arr = sh.Range("A1:G" & lr)
k = Application.WorksheetFunction.CountIf(sh.Columns(4), "<>" & "")
ReDim arr2(1 To k, 1 To 7): x = 1
For i = LBound(arr) To UBound(arr)
    If Not IsEmpty(arr(i, 4)) Then
        For n = 1 To 7
            arr2(x, n) = arr(i, n)
        Next n
        x = x + 1
    End If
Next i
If lr2 >= 4 Then sh2.Range("A4:G" & lr2).Clear
sh2.Range("A4").Resize(UBound(arr2), 7) = arr2
End Sub

Подскажите только как изменить путь к листу в

Visual Basic
1
Set sh2 = Worksheets("Прайс2")

,
и в коде

Visual Basic
1
2
3
Private Sub Worksheet_Activate()
Me.ListObjects.Item(1).Range.AutoFilter Field:=4, Criteria1:="<>"
End Sub

чтоб копировал данные в другой файл.

Но в том решении есть свой плюс. Остаются рамки в таблице



0



Если строка данных очень широка и требует многократной горизонтальной прокрутки, рассмотрите возможность использования формы данных для добавления, изменения, поиска и удаления строк.

Общие сведения о форме данных

Форма данных обеспечивает удобный способ ввода и отображения строк данных из диапазонов или таблиц, при котором не нужна горизонтальная прокрутка. Использовать форму данных может быть проще, чем перемещаться между столбцами, когда их слишком много для одновременного отображения на экране. Форму данных можно применять тогда, когда достаточно простой формы с текстовыми полями, в качестве подписей которых используются заголовки столбцов, и когда не требуются сложные или пользовательские возможности, например списки и счетчики.

Пример типичной формы данных

Microsoft Excel может автоматически создавать встроенные форма данных для диапазон или таблица. Такая форма представляет собой диалоговое окно, в котором все заголовки столбцов отображаются в виде подписей. Каждой подписи соответствует текстовое поле, в которое можно вводить данные для столбца (максимальное количество столбцов — 32). В форме данных можно вводить новые строки, искать строки с помощью навигации, а также (в зависимости от содержимого ячеек) обновлять строки или удалять их. Если ячейка содержит формула, ее результат отображается в форме данных, но саму формулу в форме данных изменить нельзя.

Примечание: Форму данных нельзя распечатать. Кроме того, поскольку эта форма является модальным диалоговым окном, то, пока она открыта, в Excel невозможно воспользоваться командой Печать и кнопкой Печать. При необходимости можно сделать снимок формы (с помощью клавиши Windows Print Screen) и скопировать его в Microsoft Paint или другую программу.

Добавление кнопки «Форма» на ленту

  1. При необходимости добавьте заголовки во все столбцы диапазона или таблицы. На основе этих заголовков создаются подписи для всех полей формы.

    Важно: Убедитесь, что в диапазоне данных нет пустых строк.

  2. Щелкните ячейку в диапазоне или таблице, куда нужно добавить форму.

  3. Чтобы добавить кнопку формы Кнопка «Форма» панели быстрого доступа, сделайте следующее:

    1. Щелкните стрелку рядом с панелью быстрого доступа и выберите пункт Другие команды.

    2. В поле «Выбор команд» щелкните «Все команды«, а затем нажмите кнопку «Форма Кнопка «Форма» в списке.

    3. Нажмите кнопку Добавить, а затем — кнопку ОК.

  4. На панели быстрого доступа нажмите кнопку «Форма » Кнопка «Форма».

Важно:  Если отображается сообщение «В форме данных слишком много полей», необходимо сократить число столбцов: в форме данных их должно быть не более 32. Один из способов решения этой проблемы (при работы с диапазоном столбцов) — вставить пустой столбец, разбив диапазон на два. Затем, если необходимо, создайте отдельную форму данных для столбцов справа от пустого столбца.

Использование формы данных

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

Добавление строки данных

  1. В форме данных нажмите кнопку Добавить.

  2. В открывшейся форме данных введите данные для новой строки в показанных полях.

    Чтобы перейти к следующему полю в строке, нажмите клавишу TAB. Чтобы перейти к предыдущему полю, нажмите клавиши SHIFT+TAB.

  3. Указав нужные данные, нажмите клавишу ВВОД, чтобы сохранить изменения и добавить строку в нижнюю часть диапазона или таблицы.

    Важно: Если отображается сообщение «Невозможно расширить список или базу данных», это может означать, что существующие данные будут перезаписаны при продолжении. При добавлении строк с помощью формы данных таблицы и диапазоны расширяются вниз. Если при этом могут быть перезаписаны какие-либо данные, то появляется сообщение Невозможно расширить список или базу данных. Измените расположение данных так, чтобы диапазон или таблица могли расширяться вниз от последней строки.

Примечание: До нажатия клавиши ВВОД отменить любые изменения можно с помощью кнопки Вернуть на форме данных. При этом из полей удалятся все внесенные данные.

Поиск строки с помощью навигации

Выполните одно или несколько действий, указанных ниже.

  • Чтобы последовательно перейти от одной строки к другой, щелкните нужную стрелку на полосе прокрутки в форме данных.

  • Чтобы перейти сразу через десять строк, щелкните полосу прокрутки между стрелками.

  • Чтобы перейти к следующей строке в диапазоне или таблице, нажмите кнопку Далее.

  • Чтобы перейти к предыдущей строке в диапазоне или таблице, нажмите кнопку Назад.

Поиск строки по определенным условиям

  1. Нажмите кнопку Критерии и введите в форму данных условие сравнения.

    В форме остаются только те строки, содержимое которых начинается с указанных данных. Например, если в качестве условия сравнения ввести Ша, то будут найдены строки «Шабалин» и «Шашков». Чтобы найти текст, который содержит только определенные символы, в условиях сравнения можно использовать подстановочные знаки.

    При создании условий сравнения для фильтров, а также при поиске и замене содержимого можно использовать указанные ниже подставочные знаки.

    Подстановочный знак

    Чтобы найти

    ? (вопросительный знак)

    Любой символ (один)
    Пример: условию «стро?а» соответствуют результаты «строфа» и «строка»

    * (звездочка)

    Любое количество символов
    Пример: условию «*-восток» соответствуют результаты «северо-восток» и «юго-восток»

    ~ (тильда), за которой следует ?, * или ~

    Вопросительный знак, звездочку или тильду
    Пример: условию «ан91~?» соответствует результат «ан91?»

  2. Чтобы найти соответствующие условиям строки, нажмите кнопку Далее или Назад.

  3. Чтобы продолжить добавление, изменение или удаление строк в форме данных, нажмите кнопку Правка.

Изменение данных в строке

  1. Найдите строку, которую нужно изменить.

  2. Измените данные в строке.

    Чтобы перейти к следующему полю в строке, нажмите клавишу TAB. Чтобы перейти к предыдущему полю, нажмите клавиши SHIFT+TAB.

  3. Изменив данные, нажмите кнопку ВВОД. Строка будет обновлена.

    Переход к следующей строке производится автоматически.

    Примечание: До нажатия клавиши ВВОД отменить любые изменения можно с помощью кнопки Вернуть.

Удаление строки

  1. Найдите в форме данных строку, которую нужно удалить.

  2. Нажмите кнопку Удалить.

    Предупреждение: Откроется диалоговое окно для подтверждения операции. После подтверждения отменить удаление строки невозможно.

Закрытие формы данных

Чтобы закрыть форму данных и вернуться к листу, нажмите в ней кнопку Закрыть.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

См. также

Общие сведения о формах, элементах управления формы и элементах ActiveX на листе

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Excel добавить строку миф excel
  • Excel добавить строку клавиатуры
  • Excel добавить строку в группе
  • Excel добавить строки по значению ячейки
  • Excel добавить строки к каждой строке

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии