Есть ли способ скопировать все пустые ячейки набора данных на одном листе и вставить пустые ячейки в набор данных на другом листе?

Есть ли способ скопировать все пустые ячейки набора данных на одном листе и вставить пустые ячейки в набор данных на другом листе?


Для каждой пустой ячейки в «Листе продаж» соответствующая ячейка на вкладке «Вставки» также должна быть пустой. При этом мне нужно пройти и удалить соответствующие ячейки на вкладке «Вставки».

Например, ячейки H2 и I2 листа продаж пусты, поэтому ячейки «Вставки» D2 и E2 должны быть пустыми, чтобы для этих ячеек не было оператора вставки.

2 ответа

РЕШЕНО!! (2 способа)

ВЫСОКИЙ УРОВЕНЬ

  • Копирование нескольких выделенных фрагментов невозможно с помощью стандартного метода CTRL + C.
  • Таким образом, решение влечет за собой сочетание функций и/или VB.

МЕТОДЫ А и Б

Два подхода:

  • A: Функциональный
  • B: На основе VB

Метод A: см. листа Google.образец

введите сюда описание изображения

Метод Б : ВБ

      Sub clr_corresponding()

    'Pre-requisite: entirety of first data set (Sales) must be selected
    On Error GoTo errtrap
    addr_2 = InputBox("Enter top left cell of 2nd dataset  - e.g. C15", "User input")
    
    MsgBox ("If the entirety of List1 not already selected, you'll need to re-run this macro!")
    
    For Each cell In Selection
        cell.Activate
        r_1 = ActiveCell.Row
        c_1 = ActiveCell.Column
        Exit For
    Next
    
    Selection.SpecialCells(xlCellTypeBlanks).Select
    
    i = 0
    For Each cell In Selection
        cell.Activate
        r_2 = ActiveCell.Row
        c_2 = ActiveCell.Column
        Range(addr_2).Offset(r_2 - r_1, c_2 - c_1).Clear
    Next
        'Range("K2").Offset(i - 1).Value = ActiveCell.Address
        
        'cell.Address
        'arr.Add (cell.Address) 'https://stackoverflow.com/questions/18097756/fastest-way-to-add-an-item-to-an-array
       
        
errtrap:
    MsgBox ("Invalid selection")
    Exit Sub
    
End Sub

Обычная работа кода VB

СРАВНЕНИЕ

Объявления (+) / Dis (-):

А:

  • Без макросов
  • Требуется отдельный раздел (может усложнить работу с зависимостями)

Б:

  • Взаимодействует напрямую с целевой выходной таблицей (например, листом «Вставки»).
  • Нежелательные изменения (например, из-за неправильных введенных данных) невозможно отменить (в таких случаях необходимо будет вернуться к последнему сохраненному документу).

Есть довольно простой способ сделать это.

  1. Перейдите к листу, на котором есть заготовки.. Выделите (выделите) всю проблемную область. Не стесняйтесь... если вы хотите то же самое на странице «Вставки», вам следует быть здесь исчерпывающим. Поэтому, если проблемная область на странице «Вставки» — A1:LZS2020, выберите этот регион. Если вы знаете координаты, используйте и введите их.

  2. Используйте, выберитеи в диалоговом окне выберите. Обратите внимание, что ОНИ теперь являются единственными выделенными ячейками.

  3. Вызовите функцию именованного диапазона. Создайте именованный диапазон, назовите что-то вроде. Обратите внимание, что формула «Ссылается на» будет иметь (однако) длинный список адресов ячеек, соответствующих выделенным ячейкам. Сохраните результаты. Щелкните именованный диапазон и нажмите, чтобы перейти к части «Ссылается на», и когда она будет выделена, скопируйте ее в буфер обмена.

  4. Возврат на сторону ячейки. Найдите пустую ячейку, нажмитечтобы отредактировать его и вставить только что скопированный материал. Нажимать. Нажиматьчтобы выделить вторую ячейку, желательно пустую. Ты собираешьсятак, чтобы остались только адреса ячеек, без имени листа. Итак, выясните, что это за строка, выделите ее в одной ячейке и скопируйте в буфер обмена. Нажиматьдля функции «Найти и заменить». Вставьте в поле «Найти что». Убедитесь, что поле «С чем» пусто. Заменить все.

  5. Скопируйте строку адресов ячеек:должно получиться хорошо. Перейдите на страницу Вставки. Введите функцию именованного диапазона. Создайте второй именованный диапазон с соответствующим именем (возможно, BlanksInserts). Вставьте свою строку с еев поле «Ссылается на».

Сделанный. Звучит как кошмар, но мне БУКВАЛЬНО потребовалось 34 секунды, чтобы сделать это. Это одно из тех пятидесятиминутных объяснений, в конце которых кто-то говорит: «О, ты имеешь в виду сделать это?» и требуется 10 секунд, чтобы сделать что-то, что заставит тебя выглядеть скучным дураком перед всеми. Да, хотя сделай это.

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

ОК, как использовать. Слева от панели редактирования формул над ячейками находится поле с треугольником вниз, чтобы увидеть больше строк и выбрать из них все. Что там происходит? Что ж, если вы еще не нажали на нее, вы просто увидите адрес активной ячейки. Или размер диапазона («5R x 2C», если выбрано пять строк и два столбца). Вы можете увидеть имя именованного диапазона, если у вас есть выбор, соответствующий выделенному.

Убедитесь, что вы находитесь на листе «Вставки». Нажмите на этот треугольник/стрелку вниз. Обратите внимание, что в списке указаны два созданных вами именованных диапазона. Может быть, больше, может быть НАМНОГО больше. В любом случае найдите И щелкните Именованный диапазон для страницы «Вставки», возможно, это были BlanksInserts. Обратите внимание, что внезапно выделяется несколько ячеек. Это ТОЧНО те ячейки, которые в листе продаж пусты... Поэтому нажмитеи сделайте их здесь пустыми.

Сделанный.

КАЖДАЯ ячейка в диапазоне на странице «Таблица продаж», которая была пустой, теперь пуста и на странице «Вставки». Просто как тот.

Также обратите внимание, что НИ ОДНА из других ячеек на странице «Вставки» не затронута. Таким образом, если в ячейке A1 было слово «корова», оно все равно есть.

(Если это не важно («каким-то образом» и «удивительно»), есть гораздо более простой способ сделать это: просто выберите и скопируйте на страницу «Вставки» все содержимое листа продаж. Но вы, конечно же, не хотите этого. ..)

Таким образом, у A1 в листе продаж может быть «43», а на странице «Вставки» у A1 есть «корова», что, по-видимому, желательно. На странице «Вставки» были удалены ТОЛЬКО пустые ячейки на странице «Таблица продаж». Все остальное на странице «Вставки», заполненное чем-то или само по себе пустым, осталось в покое и остается таким, каким оно было. Это то, о чем вы просили.

Опять кошмар описывать. Совершенно просто и быстро сделать.

Другие вопросы по тегам