Note: The other languages of the website are Google-translated. Back to English
Увійти  \/ 
x
or
x
Реєстрація  \/ 
x

or

Як перенести стовпці в рядки та вставити нові рядки для заповнення даних у Excel?

У цій статті я представляю код VBA для транспонування стовпців у рядки та вставки нових рядків для заповнення даних, як показано на знімку екрана нижче, якщо ви зацікавлені в цій операції, будь ласка, перейдіть нижче для отримання детальної інформації.
doc транспонування вставних рядків 1

Транспонуйте та вставте рядки за допомогою VBA


стрілка синя права міхур Транспонуйте та вставте рядки за допомогою VBA

Немає прямого способу транспонувати діапазон і вставити рядки для заповнення однакових даних, але тут я можу ввести код VBA для швидкого вирішення цього завдання.

1. прес Alt + F11 клавіші, щоб відкрити Microsoft Visual Basic для додатків вікна.

2. клацання Insert > Модуліі вставте нижче коду VBA у вікно Модуль. Дивіться знімок екрана:

VBA: транспонування та вставлення рядків.

 Sub TransposeInsertRows()
'UpdatebyExtendoffice20161125
    Dim xRg As Range
    Dim i As Long, j As Long, k As Long
    Dim x As Long, y As Long
    Set xRg = Application.InputBox _
    (Prompt:="Range Selection...", _
    Title:="Kutools For Excel", Type:=8)
    Application.ScreenUpdating = False
    x = xRg(1, 1).Column + 2
    y = xRg(1, xRg.Columns.Count).Column
    For i = xRg(xRg.Rows.Count, 1).Row To xRg(1, 1).Row Step -1
        If Cells(i, x) <> "" And Cells(i, x + 1) <> "" Then
            k = Cells(i, x - 2).End(xlToRight).Column
            If k > y Then k = y
            For j = k To x + 1 Step -1
                Cells(i + 1, 1).EntireRow.Insert
                With Cells(i + 1, x - 2)
                    .Value = .Offset(-1, 0)
                    .Offset(0, 1) = .Offset(-1, 1)
                    .Offset(0, 2) = Cells(i, j)
                End With
                Cells(i, j).ClearContents
            Next j
        End If
    Next i
    Application.ScreenUpdating = True
End Sub

 

doc транспонування вставних рядків 2

3. прес F5 клавішу для запуску коду, а потім виберіть діапазон даних, який потрібно транспонувати, та вставте рядки у діалогове вікно, що з’являється. Дивіться знімок екрана:
doc транспонування вставних рядків 3

4. клацання OK. І вибраний діапазон був перетворений, як показано на знімку екрана нижче.
doc транспонування вставних рядків 4

примітки: перед запуском коду краще збережіть копію вихідних даних.

Порада.Якщо ви хочете швидко транспонувати перехресну таблицю до таблиці зі списками або навпаки, спробуйте скористатися Kutools для Excel Транспонуйте розміри таблиці як показано на наступному скріншоті. Повна функція без обмежень за 30 днів, будь ласка, завантажте та отримайте безкоштовну пробну версію зараз.

doc транспонувати хрест у список

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

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% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    farhan814 · 9 months ago
    Compiler error
    Syntax Error

    Dim xRg As Range
    Dim i As Long, j As Long, k As Long
    Dim x As Long, y As Long

  • To post as a guest, your comment is unpublished.
    belmer01 · 1 years ago
    The above code works great. It keeps the first two columns. How would I change the code so that it only keeps the first column?
  • To post as a guest, your comment is unpublished.
    danielad.riosr@unilibrebog.edu.co · 2 years ago
    How can I transpose the data every two cells

    The initial exercise is:


    Class1 | Name | Nancy | Judy | Lily | Daniel
    Class2 | Name | Bruce | Uee | Perter | Daniel
    Class3 | Name | kate | Kelly | Wenddy | Daniel

    and I need it to look like this:

    Class1 | Name | Nancy | Judy
    Class1 | Name | Lily | Daniel
    Class 2 | Name | Bruce | Uee
    Class 2 | Name | Perter | Daniel
    Class3 | Name | kate | Kelly
    Class3 | Name | Wenddy | Daniel
  • To post as a guest, your comment is unpublished.
    Daniela · 2 years ago
    how can I make data 3 and 4 remain in the same column:


    the initial exercise is:

    Class1 | Name | Nancy | Judy | Lily | Daniel
    Class2 | Name | Bruce | Uee | Perter | Daniel
    Class3 | Name | kate | Kelly | Wenddy | Daniel

    I need to transpose it like this

    Class1 | Name | Nancy | Judy
    Class1 | Name | Lily | Daniel
    Class 2 | Name | Bruce | Uee
    Class 2 | Name | Perter | Daniel
    Class3 | Name | kate | Kelly
    Class3 | Name | Wenddy | Daniel
  • To post as a guest, your comment is unpublished.
    Val · 4 years ago
    how would i change the VBA code so that it will keep more of the columns the same? for example instead of the first two columns staying the same it will be the first 4?
    • To post as a guest, your comment is unpublished.
      Sunny · 4 years ago
      I am not sure, may be you can try to change x = xRg(1, 1).Column + 2 to x = xRg(1, 1).Column + 4.
  • To post as a guest, your comment is unpublished.
    Chasles · 4 years ago
    If my cross table's informations come from formulas, those formulas don't always follow when the macro is applied. How could I fix this to make sure that the formulas are kept in the cells?
    • To post as a guest, your comment is unpublished.
      Sunny · 4 years ago
      Hi, thank u for ur message. For solving your problem, you can apply Kutools' Convert Formula to Text before you running the macro, then after transposing thetable, apply Kutools' Convert Text to Formula. Please Let me know if it works. Thank u.