VBA Transpose
Будучи користувачем Microsoft Excel, ви, можливо, часто використовували функцію транспонування, яка дозволяє проводити обмін між рядками та стовпцями для масиву. Перетворення рядків у стовпці та стовпці в рядки - це те, що функція транспонування виконує для вас excel. Кількість рядків стає кількістю стовпців і навпаки. Значить, якщо у вашому масиві є 2 рядки та 3 стовпці, після його переміщення він зміниться на масив з 3 рядками та 2 стовпцями. У цьому підручнику ми перейдемо до VBA Transpose, який дозволить вам автоматизувати метод транспонування, який ви використовуєте в Excel.
Синтаксис Transpose в Excel VBA
VBA Transpose має такий синтаксис:
Де,
Arg1 : це необхідний аргумент, який є не що інше, як коло комірок, які ми хотіли перенести (тобто масив).
Перша частина синтаксису - це не що інше, як вираз, під яким можна використовувати функцію Transpose. Наприклад, WorkheetFunction.
Як використовувати Excel VBA Transpose?
Ми дізнаємось, як використовувати Transpose з кількома прикладами в Excel VBA.
Ви можете завантажити цей шаблон VBA Transpose Excel тут - VBA Transpose Excel шаблонПриклад №1 - Перенесення VBA одновимірного масиву
Припустимо, ви працюєте над даними зі списками (що представляє собою одновимірний масив), на зразок імен працівника ("Lalit", "Sneha", "Ethyl", "John", "Cory"), і вам потрібен цей список бути вклеєними у вікно Excel. Подивимося, як ми можемо це зробити.
Виконайте наведені нижче дії, щоб використовувати Transpose у VBA.
Крок 1: Вставте новий модуль і визначте нову під-процедуру для створення макросу в VBA.
Код:
Sub Trans_ex1 () Кінець Sub
Крок 2: Визначте нову змінну, яка може вмістити ваш одномірний масив.
Код:
Sub Trans_ex1 () Dim Arr1 як варіант завершення Sub
Крок 3: Визначте список як масив за допомогою функції Array. Це був би список, який ви хотіли вставити на свій аркуш excel.
Код:
Sub Trans_ex1 () Dim Arr1 як варіант Arr1 = масив ("Lalit", "Sneha", "Ethyl", "John", "Cory") Кінець Sub
Крок 4: Тепер використовуйте метод Range.Value, щоб визначити діапазон, в який ці значення ви хотіли вставити.
Код:
Sub Trans_ex1 () Dim Arr1 як варіант Arr1 = масив (діапазон "Lalit", "Sneha", "Ethyl", "John", "Cory") ("A1: A5"). Value = End Sub
Крок 5: Використовуйте Application.WorksheetFunction.Перекладіть на даний масив, щоб мати можливість перенести список, визначений в змінній Arr1.
Код:
Sub Trans_ex1 () Dim Arr1 As Variant Arr1 = масив (діапазон "Lalit", "Sneha", "Ethyl", "John", "Cory") ("A1: A5"). Value = Application.WorksheetFunction.Transpose (Arr1 ) Закінчення Sub
Тут ми визначили код, який дозволить системі перенести дані у масив списку під назвою Arr1, а потім зберегти їх у комірці A1: A5 на активному робочому аркуші.
Крок 6: Натисніть кнопку F5 або Запустити під VBE, щоб запустити цей код і побачити результат під дією електронної таблиці Excel.
Ви можете бачити, що даний масив списку переміщується в один стовпчик і зберігається під коміркою від А1 до А5.
Приклад №2 - Перенесення VBA двовимірного масиву
Припустимо, у вас є двовимірний масив працівників та їх зарплати, як показано нижче:
Це двовимірні дані з шістьма рядками та двома стовпцями. Після перенесення це буде масив з двома рядками та шістьма стовпцями.
Виконайте наведені нижче дії, щоб використовувати Transpose у VBA.
Крок 1: Визначте підпроцедуру для зберігання макросу.
Код:
Sub Trans_Ex2 () Кінець Sub
Крок 2: Визначте діапазон, куди потрібно перенести ці дані. Це можна зробити за допомогою функції Sheets.Range.Value. Я б економив перекладений масив у комірку D1 до I2.
Код:
Sub Trans_Ex2 () Таблиці ("Приклад №2"). Діапазон ("D1: I2"). Значення = Кінець Sub
Крок 3: Використовуйте WorksheetFunction.Transpose, щоб мати можливість призначити масив A1: B6 для переміщення функції.
Код:
Sub Trans_Ex2 () Таблиці ("Приклад №2"). Діапазон ("D1: I2"). Значення = WorksheetFunction.Transpose (Кінець підрозділу
Крок 4: нам потрібно вказати аргумент для функції транспонування. Ми хотіли перенести діапазон масиву A1: B6. Таким чином, використовуйте діапазон ("A1: B6") як аргумент.
Код:
Sub Trans_Ex2 () Таблиці ("Приклад №2"). Діапазон ("D1: I2"). Значення = WorksheetFunction.Transpose (Діапазон ("A1: B6")) Кінець Sub
Крок 5: Натисніть кнопку F5 або кнопку «Запустити», щоб запустити цей код і побачити вихід.
Тут діапазон масиву A1: B6 переміщується і зберігається в діапазон масиву D1: I2 за допомогою функції VBA Transpose в excel.
Приклад №3 - VBA Перенесення масиву за допомогою спеціального методу вставки
Ми також можемо перенести масив і вставити як спеціальне, як і в Excel, використовуючи Alt + E + S. Ми можемо використовувати різні операції за допомогою цього спеціального методу вставки.
Розглянемо ті самі дані, які ми використовували в попередньому прикладі.
Виконайте наведені нижче дії, щоб використовувати Transpose у VBA.
Крок 1. Визначте підпроцедуру для зберігання макросу.
Код:
Sub Trans_Ex3 () Кінець Sub
Крок 2: Визначте дві нові змінні: одну, яка може містити масив джерел даних (sourceRng) та інші, які можуть містити діапазон вихідного масиву (targetRng).
Код:
Sub Trans_Ex3 () Dim sourceRng Як Excel.Range Dim taretRng як Excel.Range Кінець Sub
Зверніть увагу, що тип цих змінних визначений як (Excel.Range). Тому що ми хотіли перенести дані, які є діапазоном масиву.
Крок 3: Встановіть діапазон джерела як A1: B6 (дані, які ми хотіли перенести) за допомогою функції Sheets.Range.
Код:
Sub Trans_Ex3 () Dim sourceRng як Excel.Range Dim taretRng як Excel.Range Встановити sourceRng = Таблиці ("Приклад №3"). Діапазон ("A1: B6") Кінець Sub
Крок 4: Встановіть цільовий / цільовий діапазон як D1: I2 (Діапазон комірок, де буде зберігатися вихід) за допомогою функції Sheets.Range.
Код:
Sub Trans_Ex3 () Dim sourceRng як Excel.Range Dim taretRng як Excel.Range Встановити sourceRng = Таблиці ("Приклад №3"). Діапазон ("A1: B6") Встановити targetRng = Таблиці ("Приклад №3"). "D1: I2") Закінчення Sub
Крок 5: Тепер скопіюйте команду Copy, щоб скопіювати діапазон вихідних даних зі свого робочого аркуша.
Код:
Sub Trans_Ex3 () Dim sourceRng як Excel.Range Dim taretRng як Excel.Range Встановити sourceRng = Таблиці ("Приклад №3"). Діапазон ("A1: B6") Встановити targetRng = Таблиці ("Приклад №3"). "D1: I2") sourceRng.Копіювати Закінчення Sub
Крок 6: Ми будемо використовувати функцію PasteSpecial на змінному targetRng, щоб зберегти транспонований вихід під цільовим діапазоном (D1: I2) на вашому робочому аркуші.
Код:
Sub Trans_Ex3 () Dim sourceRng як Excel.Range Dim taretRng як Excel.Range Встановити sourceRng = Таблиці ("Приклад №3"). Діапазон ("A1: B6") Встановити targetRng = Таблиці ("Приклад №3"). "D1: I2") sourceRng.Копіюйте targetRng.PasteSpecial Paste: = xlPasteValues, Операція: = xlNone, SkipBlanks: = False, Transpose: = True End Sub
- Вставити : Дозволяє вставляти значення в інший формат (наприклад, Вставити як значення, як Формули, Як Формат тощо). Це аналогічно тому, що і у Excel (Ми робимо Alt + E + S, щоб мати різні спеціальні параметри вставки). У нашому прикладі ми встановили його для вставки як значення.
- Операція : Є різні операції, які можна виконати, як додавання, віднімання, множення, ділення (так само, як і в Excel).
- SkipBlanks : Якщо встановлено True, ця команда дозволяє пропускати пробіли, якщо такі є, з ваших даних, виконуючи різні спеціальні операції вставки. Ми встановили його на False, значить, ми хотіли не пропускати заготовки.
- Транспонування : Якщо встановлено значення True, воно дозволяє здійснити перенесення масиву даних.
Крок 7: Запустіть цей код, натиснувши кнопку F5 або Запустити і подивіться вихід.
Що потрібно пам’ятати
- Працюючи над одновимірним масивом, він завжди повинен бути горизонтальним (один рядок, кілька стовпців), щоб застосувати метод транспонування.
- Обов’язково з’ясовується кількість рядків і кількість стовпців під час використання VBA Transpose в Excel. Якщо у нас є 3 ряди та 5 стовпців, після транспонування було б 5 рядків з трьома стовпцями.
- Зазвичай метод Transpose не включає форматування вихідних даних. Якщо ви хочете застосувати той самий формат, що і вихідні дані, вам доведеться встановити його вручну, або за допомогою спеціальної опції XlPasteFormat вставити формат вихідних даних до цільових даних.
- Кількість елементів, які функція транспонування може приймати в масиві, не може перевищувати 5461.
- Масив не може містити жодного елемента / рядка довжиною більше 255. Якщо він включений, він спричинить помилки, такі як 13, невідповідність типу, 5, недійсний виклик або аргумент процедури, 1004, визначена додатком або визначена об'єктом помилка .
- Масив джерела не може містити жодного нульового значення (наприклад, "Null", "# N / A").
Рекомендовані статті
Це було керівництвом щодо транспорту VBA. Тут ми обговорили, як використовувати Excel VBA Transpose разом із практичними прикладами та шаблоном Excel, який можна завантажити. Ви також можете ознайомитися з іншими запропонованими нами статтями -
- Посібник з функції рядків VBA
- Формула Excel TRANSPOSE
- Дізнайтеся про справу VBA в Excel
- Видаліть (видаліть) порожні рядки в Excel