Note: The other languages of the website are Google-translated. Back to English

 Як вибрати стовпець на основі заголовка стовпця в Excel?

Припустимо, у вас є великий аркуш, який містить кілька стовпців, і тепер ви хотіли б вибрати конкретний стовпець на основі імені заголовка стовпця. Щоб знайти стовпець за стовпчиком на великому аркуші, ви витратите багато часу, у цій статті я представив швидкий метод вирішення цієї роботи в Excel.

Виберіть стовпець на основі назви заголовка стовпця з кодом VBA


Виберіть стовпець на основі назви заголовка стовпця з кодом VBA


Наступний код VBA може допомогти вам вибрати стовпці на основі конкретного імені заголовка, будь-ласка, зробіть так:

1. Утримуйте клавішу ALT + F11 ключі, щоб відкрити Microsoft Visual Basic для додатків вікна.

2. Клацання Insert > Модуліта вставте наступний код у Модулі Вікно

Код VBA: Виберіть стовпець на основі назви заголовка стовпця:

Sub FindAddressColumn()
'Updateby Extendoffcie
    Dim xRg As Range
    Dim xRgUni As Range
    Dim xFirstAddress As String
    Dim xStr As String
    On Error Resume Next
    xStr = "Name"
    Set xRg = Range("A1:P1").Find(xStr, , xlValues, xlWhole, , , True)
    If Not xRg Is Nothing Then
        xFirstAddress = xRg.Address
        Do
            Set xRg = Range("A1:P1").FindNext(xRg)
            If xRgUni Is Nothing Then
                Set xRgUni = xRg
            Else
                Set xRgUni = Application.Union(xRgUni, xRg)
            End If
        Loop While (Not xRg Is Nothing) And (xRg.Address <> xFirstAddress)
    End If
    xRgUni.EntireColumn.Select
End Sub

примітки: У наведеному вище коді, A1: P1 - діапазон заголовків, з яких потрібно вибрати стовпці, і “Назва”У сценарії xStr = "Ім'я" - це назва заголовка, на основі якого потрібно вибрати стовпці. Будь ласка, змініть їх на свої потреби.

3. Після копіювання та вставки коду, натисніть F5 для запуску цього коду, і всі стовпці з конкретним іменем заголовка були вибрані відразу, див. знімок екрана:


Найкращі інструменти для підвищення продуктивності офісу

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

  • Повторне використання: Швидко вставте складні формули, діаграми і все, що ви використовували раніше; Шифрувати комірки з паролем; Створити список розсилки та надсилати електронні листи ...
  • Супер формула бар (легко редагувати кілька рядків тексту та формули); Макет читання (легко читати та редагувати велику кількість комірок); Вставте у відфільтрований діапазон...
  • Об’єднати клітинки / рядки / стовпці без втрати даних; Вміст розділених комірок; Об'єднати повторювані рядки / стовпці... Запобігання дублюючим клітинам; Порівняйте діапазони...
  • Виберіть Повторюваний або Унікальний Рядки; Виберіть Пусті рядки (усі клітинки порожні); Супер знахідка та нечітка знахідка у багатьох робочих зошитах; Випадковий вибір ...
  • Точна копія Кілька клітинок без зміни посилання на формулу; Автоматичне створення посилань на кілька аркушів; Вставте кулі, Прапорці та інше ...
  • Витяг тексту, Додати текст, Видалити за позицією, Видаліть пробіл; Створення та друк проміжних підсумків підкачки; Перетворення вмісту комірок та коментарів...
  • Супер фільтр (зберегти та застосувати схеми фільтрів до інших аркушів); Розширене сортування за місяцем / тижнем / днем, частотою та іншим; Спеціальний фільтр жирним, курсивом ...
  • Поєднайте робочі зошити та робочі аркуші; Об’єднати таблиці на основі ключових стовпців; Розділіть дані на кілька аркушів; Пакетне перетворення xls, xlsx та PDF...
  • Понад 300 потужних функцій. Підтримує Office / Excel 2007-2019 та 365. Підтримує всі мови. Простота розгортання на вашому підприємстві чи в організації. Повна функція 30-денної безкоштовної пробної версії. 60-денна гарантія повернення грошей.
вкладка kte 201905

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (6)
Поки немає оцінок. Оцініть першим!
Цей коментар був мінімізований модератором на сайті
Це чудово, але що, якби я захотів скопіювати, скажімо, CustomerName, OrderNumber, OrderDate, FulfillmentDate, OrderStatus з Sheet1 з багатьма іншими стовпцями.
Як вказати лише стовпці, які потрібно скопіювати на інший аркуш? Здається, це вказує лише один стовпець.
Я пробував деякі речі, але проблема полягає більше в тому, що стовпці не обов’язково розташовані в тому самому порядку на вихідному аркуші. Вихідні дані в Sheet1 вставляються з буфера обміну Windows на аркуш Excel.

Це може бути CustomerName, OrderDate, OrderNumber, OrderStatusm FulfillmentDate або інший порядок.

Мені потрібно, щоб вони були скопійовані на новий аркуш у певному порядку, оскільки в Sheet2 є формули, які застосовуються до того, що копіюється з Sheet1 на Sheet2.

Окрім переміщення стовпців після вставки з буфера обміну Windows, я не можу цього зрозуміти.

Будь ласка, допоможіть, якщо це можливо.

Але дякую за вищесказане.
Цей коментар був мінімізований модератором на сайті
Dim xRg As Range
Dim xRgUni As Range
Dim xFirstAddress як рядок
Dim xStr як рядок

Чи оголошуються змінні.

Отже, щоб знову використовувати наведений вище код для іншого стовпця, вам доведеться оголосити нові змінні.

Dim xRg2 як діапазон
Dim xRgUni2 як діапазон
Dim xFirstAddress2 як рядок
Dim xStr2 як рядок

І замініть кожен екземпляр xRg на xRg2 у коді тощо. Чи має це сенс?
Цей коментар був мінімізований модератором на сайті
Привіт, виглядає чудова робота. Але я отримую помилку компіляції: Аргумент не є обов'язковим під час виділення ". Union". Що я повинен зробити?
Цей коментар був мінімізований модератором на сайті
Дякую – спочатку здавалося, що це спрацювало, але потім я помітив, що він не включає перший знайдений стовпець – він почався з другого і далі.

Що зрозуміло: ви встановлюєте xRg двічі, але не включаєте перший.

TBH: спочатку я думав, що все працює добре, але потім з’явилася ця «помилка», і мені довелося з’ясувати, чому...

Я виправив це наступним чином: (у Excel коментарі стануть зеленими та відображатимуть мої зміни: '***)



Підсумок пошуку адреси ()

'Оновлення за допомогою Extendoffcie

Dim xRg As Range

Dim xRgUni As Range

Dim xFirstAddress як рядок

Dim xStr як рядок

On Error Resume Next
xStr = "Ім'я"
Встановити xRg = діапазон("A1:P1").Find(xStr, , xlValues, xlPart, , , True)

Якщо ні, то xRg – це нічого

xFirstAddress = xRg.Address

Do

Якщо xRgUni - це нічого, то

Встановіть xRgUni = Range(xFirstAddress) '*** Використовуючи вперше знайдений діапазон

Ще

Встановити xRgUni = Application.Union(xRgUni, xRg)

End If



Встановіть xRg = Range("A1:P1").FindNext(xRg) '*** Зараз шукаємо другий/наступний



Цикл while (Not xRg Is Nothing) і (xRg.Address <> xFirstAddress)

End If

xRgUni.EntireColumn.Select

End Sub




Тепер це працює для мене, але я сподіваюся навчитися у вас, якщо я щось пропустив.
Цей коментар був мінімізований модератором на сайті
Привіт. Чи можете ви запропонувати макрос для проблеми, згаданої нижче Шоном
Цей коментар був мінімізований модератором на сайті
Дуже дякую, що врятував мій день!
There are no comments posted here yet
Залишайте свої коментарі
Публікація як гість
×
Оцініть цю публікацію:
0   Персонажі
Рекомендовані місця