Как вставить данные (без скрытых ячеек) на лист, содержащий скрытые столбцы?

Как вставить данные (без скрытых ячеек) на лист, содержащий скрытые столбцы?

Можно ли предотвратить вставку данных в скрытые столбцы одним движением копирования/вставки, вместо того чтобы копировать/вставлять их несколько раз?

решение1

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

Перед копированием и вставкой:

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

После вставки:

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

Примечание. Как вы можете заметить, макрос пропустил hidden Column H, при вставке данных из диапазона A1:C9.

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

  • Скрыть столбец/столбцы, при этом этот пост Col Hскрыт.

  • ИлиЩелкните правой кнопкой мыши the Вкладка листаи из всплывающего меню нажмитеПосмотреть код, или нажмитеАльт+Ф11, чтобы получить редактор VB.

  • Копировать&Вставитьэтот код VBA (макрос) какСтандартный модульзатемБЕГАТЬМакросТестКопироватьВставить.

    Sub TestCopyPaste()
    
    CopySkippingHidden ActiveSheet.Range("A1:C9"), _
      ActiveSheet.Range("G1")
    
      End Sub
    

Sub CopySkippingHidden(rngToCopy As Range, pasteStart As Range)

    Dim c As Range


    For Each c In rngToCopy.Columns

        Do While pasteStart.EntireColumn.Hidden
            Set pasteStart = pasteStart.Offset(0, 1)
        Loop
        c.Copy pasteStart

        Set pasteStart = pasteStart.Offset(0, 1)

    Next c

End Sub
  • ActiveSheet.Range("A1:C9")и ActiveSheet.Range("G1")доступны для редактирования.
  • Где A1:C9находится Источник для копирования, а G1где Цель для вставки скопированных данных.
  • Вы также можете настроить ссылки на ячейки/диапазон данных.

Связанный контент