Макрос для переноса столбцов в excel

1 / 1 / 0

Регистрация: 14.04.2014

Сообщений: 40

1

07.05.2014, 15:47. Показов 12378. Ответов 19


Студворк — интернет-сервис помощи студентам

Собсетвено есть данные в столбцах А , В , С , D.
Нужно сделать так что бы столбец С поменялся местами со столбцом В вместе со всеми данными? с помошью макроса VBA
Буду благодарен любым вашим мыслям!



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

07.05.2014, 15:47

19

15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

07.05.2014, 15:56

2

Banzayl2w, запишите макрорекордером действия: выделить ст. С, Ctrl+X, выделить ст. В, Вставить — Вставить вырезанные ячейки.



0



1 / 1 / 0

Регистрация: 14.04.2014

Сообщений: 40

07.05.2014, 16:07

 [ТС]

3

надо бы довести «до ума» через получившиеся макросы вручную в VB

Добавлено через 2 минуты
просто как вы говорите делать данные куда вставляешь теряются а надо что бы они сместились оставаясь в табличке



0



OLEGOFF

1062 / 506 / 137

Регистрация: 27.02.2013

Сообщений: 1,451

07.05.2014, 16:28

4

Попробуй так

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub замена()
 
    Columns("C:C").Select
    Selection.Cut
    Columns("T:T").Select
    ActiveSheet.Paste
    Columns("B:B").Select
    Selection.Cut
    Columns("C:C").Select
    ActiveSheet.Paste
    Columns("T:T").Select
    Selection.Cut
    Columns("B:B").Select
    ActiveSheet.Paste
End Sub

Через любой свободный столбец



0



1 / 1 / 0

Регистрация: 14.04.2014

Сообщений: 40

07.05.2014, 16:35

 [ТС]

5

нет все столбцы забиты данными нужно данные столбца D поменять с данными столбца А, просто перенести местами



0



OLEGOFF

1062 / 506 / 137

Регистрация: 27.02.2013

Сообщений: 1,451

07.05.2014, 17:14

6

Так что-ли?

Visual Basic
1
2
3
4
5
6
7
8
Sub UpToDown()
Dim A, B
    A = [C:C]
    B = [B:B]
    
   [C:C] = B
   [B:B] = A
End Sub



0



Казанский

15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

07.05.2014, 17:49

7

Цитата
Сообщение от Banzayl2w
Посмотреть сообщение

как вы говорите делать данные куда вставляешь теряются

Неправда! Вот записанный макрос:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub Макрос2()
'
' Макрос2 Макрос
'
 
'
    Columns("C:C").Select
    Selection.Cut
    Columns("B:B").Select
    Selection.Insert Shift:=xlToRight
End Sub

Для решения учебного задания этого достаточно. Если убрать лишнее, то так:

Visual Basic
1
2
3
4
Sub Макрос2()
    Columns("C").Cut
    Columns("B").Insert
End Sub



1



1 / 1 / 0

Регистрация: 14.04.2014

Сообщений: 40

08.05.2014, 11:44

 [ТС]

8

Не работает макрос не переносит (



1



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

08.05.2014, 11:49

9

Не буду спорить — но счёт 2:1 не в Вашу пользу — у меня и Алексея работает

По макросу OLEGOFF аналогично 2:1



0



1 / 1 / 0

Регистрация: 14.04.2014

Сообщений: 40

08.05.2014, 12:21

 [ТС]

10

файл ниже вот нужно поменять столбец A cо столбцом D местами, и код не хочет работать)



0



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

08.05.2014, 12:53

11

И где тот код, который не хочет работать?



0



1 / 1 / 0

Регистрация: 14.04.2014

Сообщений: 40

08.05.2014, 12:59

 [ТС]

12

ниже



0



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

08.05.2014, 13:00

13

Вообще понятно — уж сколько говорено, что объединение ячеек — эло! Повторю ещё раз.



0



1 / 1 / 0

Регистрация: 14.04.2014

Сообщений: 40

08.05.2014, 13:04

 [ТС]

14

тоесть никак не решить эту задачу? с переносом данных из одного столбца в другой?



0



Hugo121

6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

08.05.2014, 13:04

15

Visual Basic
1
2
3
4
5
6
Sub Макрос333()
    Columns(1).Cut
    Columns(4).Insert
    Columns(4).Cut
    Columns(1).Insert
End Sub

Только сперва уберите объединение в A!



1



Казанский

15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

08.05.2014, 13:06

16

Лучший ответ Сообщение было отмечено Banzayl2w как решение

Решение

С автоматическим снятием объединения ячеек в задействованных столбцах

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub Макрос1()
Dim c As Range
For Each c In Intersect(Range("A:A,D:D"), ActiveSheet.UsedRange)
  If c.MergeCells Then
    If c.MergeArea.Columns.Count > 1 Then c.UnMerge
  End If
Next
  
Columns("D").Cut
Columns("A").Insert
Columns("B").Cut
Columns("E").Insert
End Sub



1



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

08.05.2014, 13:07

17

Лучший ответ Сообщение было отмечено Banzayl2w как решение

Решение

И чего не все варианты пробовали? Вариант через массив работает «из коробки», только диапазоны изменить, и объединения не мешают.
И это будет именно перенос данных в чистом виде!



1



1 / 1 / 0

Регистрация: 14.04.2014

Сообщений: 40

08.05.2014, 13:14

 [ТС]

18

Огромное спасибо!



0



1062 / 506 / 137

Регистрация: 27.02.2013

Сообщений: 1,451

08.05.2014, 13:24

19

У меня все работает…?



0



1 / 1 / 0

Регистрация: 14.04.2014

Сообщений: 40

08.05.2014, 13:26

 [ТС]

20

Да, все работает!



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

08.05.2014, 13:26

Помогаю со студенческими работами здесь

Макрос VBA
Добрый день!Помогите с задачей.

Создать макрос , доступный во всей рабочей книге, в
процессе…

Макрос.VBA
Создать Mакрос в Word, так чтобы он находил в тексте буквосочетание и выделял его цветом, а потом…

Макрос VBA
Помогите написать макрос или подскажите как должен выглядеть. есть база данных макрос ищет по…

Перемещение с переименованием файлов в vba
Здравствуйте. Есть задача, найти в целевой папке список имен фото, находящийся в столбце 1 Excel, и…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

20

В этой статье я представляю код VBA для переноса столбцов в строки и вставки новых строк для заполнения данных, как показано на скриншоте ниже. Если вас интересует эта операция, перейдите по ссылке ниже для получения дополнительных сведений.
док транспонировать вставить строки 1

Транспонировать и вставлять строки с помощью VBA


стрелка синий правый пузырь Транспонировать и вставлять строки с помощью VBA

Нет прямого способа транспонировать диапазон и вставлять строки для заполнения тех же данных, но здесь я могу ввести код VBA для быстрого решения этой задачи.

1. Нажмите Alt + F11 ключи для открытия Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модулии вставьте под кодом 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

док транспонировать вставить строки 2

3. Нажмите F5 нажмите клавишу, чтобы запустить код, а затем выберите диапазон данных, который вы хотите транспонировать, и вставьте строки в всплывающее диалоговое окно. Смотрите скриншот:
док транспонировать вставить строки 3

4. Нажмите OK. И выбранный диапазон был преобразован, как показано на скриншоте ниже.
док транспонировать вставить строки 4

Внимание: перед запуском кода лучше сохранить копию исходных данных.

Наконечник.Если вы хотите быстро преобразовать перекрестную таблицу в таблицу списка или наоборот, попробуйте использовать Kutools for ExcelАвтора Перенести размеры таблицы как показано на следующем снимке экрана. Полная функция без ограничений в 30 дней, пожалуйста, скачайте и получите бесплатную пробную версию сейчас.

док транспонировать крестик в список


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (8)


Оценок пока нет. Оцените первым!

 

irina_iv

Пользователь

Сообщений: 21
Регистрация: 11.12.2018

#1

29.12.2018 10:02:44

Уважаемые программисты, можно ли к Вам обратиться помочь доработать код?
С листа «details» копируем 2 столбца, потом еще 10, но помещаем их в новый лист через 1 (начиная с 3-го столбца-2 мы уже скопировали). Файл прилагаю.

Код
Private Sub Worksheet_Activate()
Dim i As Long, j As Long, lrow As Long
Dim UserRange As Range
Dim iCells As Range
lrow = UserRange.Cells(Rows.Count, 1).End(xlUp).Row
With Sheets("details").Range("B2").CurrentRegion
Set UserRange = Sheets("details").Union(.Columns("B"), .Columns("C"), .Range("R2:AB2"))
Union(.Columns("B"), .Columns("C")).Copy Sheets("Лист1").Range("B1")
'Range("R2:AB2").Copy Cells(RowsCount, "D").End(xlUp).Offset(2)
'значения вставляются каждый раз в следующую строку
End With

'Range("R2:AB2" & lrow).Copy Sheets("Лист1").Range("D2")
For Each iCells In Sheets("details").Range("R2" & lrow & ":AB2" & lrow)
If Worksheets("details").Cells(iCells, "R2").Value > 0 Then
For W = 3 To lrow
If IsEmpty(Cells(W, 1)) Then
For j = 1 To 10 'так как нужно скопировать с R2 по AB2 -10- столбцов
Do
Cells(W, j) = Worksheets("details").Cells(iCells, j)
j = 2 * j + 1
iCells = iCells + 1
Loop Until Columns(j).Find(What:="*") Is Nothing Or j = Columns.Count
     '.PasteSpecial xlPasteAll
     .PasteSpecial xlPasteColumnWidths ' ширина столбца'
     .PasteSpecial xlPasteValues ' значения'
     .PasteSpecial xlPasteFormats ' форматы'
 
Next j
Exit For
End If
Next W
End If
Next iCells
'End With
Application.CutCopyMode = False
End Sub

На листе2 показано, как это должно выглядеть.

Прикрепленные файлы

  • avan_3.rar (166.33 КБ)

Изменено: irina_iv29.12.2018 10:05:27

 

Kuzmich

Пользователь

Сообщений: 7998
Регистрация: 21.12.2012

У меня ваш архив не открылся.

 

irina_iv

Пользователь

Сообщений: 21
Регистрация: 11.12.2018

Вот так примерно…

Изменено: irina_iv29.12.2018 14:46:45

 

Kuzmich

Пользователь

Сообщений: 7998
Регистрация: 21.12.2012

#4

29.12.2018 15:01:52

Цитата
Private Sub Worksheet_Activate()

При активации какого листа срабатывает макрос?

Цитата
Sheets(«Лист1»).Range(«B1»)

В книге нет Листа1

 

RAN

Пользователь

Сообщений: 7091
Регистрация: 21.12.2012

Удалить из каждой таблицы по 1500 строк — такая проблема? Тогда, глядишь, и для макросов место найдется.

 

Dima S

Пользователь

Сообщений: 2063
Регистрация: 01.01.1970

у кого то из форумчан была очень актуальная для вашего файла подпись: «если автоматизировать бардак, то получится автоматизированный бардак».
я думаю во многом из-за этого так много желающих разбираться в вашем файле.

 

irina_iv

Пользователь

Сообщений: 21
Регистрация: 11.12.2018

Ну, Вы, конечно, шутники…Я и вправду удалила (случайно) лист1, хотя он там нужен. Но «бардаком» я бы не стала это называть: во-первых, я новичок, во-вторых, это таблицы, а разве можно таблицы назвать бардаком?..
Неравнодушным людям буду очень благодарна, ибо доделать макрос сама не могу пока. Копирование с листа «details» должно выглядеть как лист «pre».
P.s. Всех с прошедшими праздниками!

Прикрепленные файлы

  • avans.rar (141.28 КБ)

 

Anchoret

Пользователь

Сообщений: 1061
Регистрация: 01.01.1970

Anchoret

irina_iv, Не равнодушным людям трудно понять в Вашем файле чего Вы собственно хотите.
Можете описать хотелку своими словами без разгадывания шарад в неработающем коде вашего файла?

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

А можете сделать файл на одном листе  таблица 10х10 (рога, копыта), на другом , то как она должна выглядеть после копирования. В Вашем макросе нет желания разбирать ошибки.

«Все гениальное просто, а все простое гениально!!!»

 

irina_iv

Пользователь

Сообщений: 21
Регистрация: 11.12.2018

Конечно. Два столбца «ФИО агента» и «Адрес» переносятся с листа «details» на «Лист1» и находятся рядом, остальные столбцы «аванс», «зп1-зп10» — переносятся на лист «Лист1» через один столбец (чтобы между можно было вписывать даты). То есть все должно выглядеть как на листе ‘pre’. Было бы замечательно, если можно было бы сделать форматирование как на листе «pre» на листе1. (цвета, толщина, центрирование и т.д.). Конечно, не мучайтесь :). Я на этот код потратила недели 2, и он еще не работает…
P.s. Спасибо, люди добрые,-у меня даже надежда появилась!
P.p.s. В принципе, можно скопировать на лист «pre’, только чтобы форматирование этой таблицы сохранилось.

Изменено: irina_iv09.01.2019 15:04:42

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

Немного не понятно, зачем копировать столбцы, копируйте весь лист, затем вставьте столбцы где вам нужно, а лишнее удалите. Если таблица имеет одинаковую структуру всегда, то можно макрорекодером записать макрос, а после лишнее удалить.

Изменено: Nordheim09.01.2019 15:11:19

«Все гениальное просто, а все простое гениально!!!»

 

irina_iv

Пользователь

Сообщений: 21
Регистрация: 11.12.2018

Ну, можно, конечно, и так сделать. А как у меня будут тогда добавляться новые значения? Каждый раз заново копировать лист?
Только я думала, что так будет интереснее.
P.s. С макрорекордером обращаться не умею…

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

#13

09.01.2019 15:34:01

Цитата
irina_iv написал:
А как у меня будут тогда добавляться новые значения?

А как они у Вас сейчас добавляются, или будут добавляться после копирования?

Цитата
irina_iv написал:
P.s. С макрорекордером обращаться не умею…

Т.е. макросы писать можете, а макрорекодером пользоваться не умеете? Как это так?

«Все гениальное просто, а все простое гениально!!!»

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

Наверно копирование листа вам не подойдет, если у Вас уже будут заполнены доп столбцы

«Все гениальное просто, а все простое гениально!!!»

 

irina_iv

Пользователь

Сообщений: 21
Регистрация: 11.12.2018

Да, здесь бы лучше циклом или еще как-то, как быстро и точно…
А мой точно не хотите посмотреть? ;) Может, быстрее будет?..

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

#16

09.01.2019 15:46:03

Цитата
irina_iv написал:
А мой точно не хотите посмотреть?

Нет. Но на вскидку, это к чему относится?

Код
     .PasteSpecial xlPasteColumnWidths ' ширина столбца'
     .PasteSpecial xlPasteValues ' значения'
     .PasteSpecial xlPasteFormats

«Все гениальное просто, а все простое гениально!!!»

 

Anchoret

Пользователь

Сообщений: 1061
Регистрация: 01.01.1970

Anchoret

#17

09.01.2019 16:19:59

irina_iv, пробуйте (не тестировал, т.к. не хватило времени — на работе). Предполагается, что лист с индесом 1 — лист с исходными данными, с индексом 3 — место выгрузки:

Код
Sub aaa()
Dim arr(), a&, c%, zz()
zz = Array("Аванс", "Дата", "ЗП")
With Sheets(1)
  a = Application.CountA(Intersect(.UsedRange, .Columns(3)))
  ReDim arr(1 To a, 1 To 25)
  arr(1, 4) = zz(0): arr(1, 5) = zz(1)
  For c = 1 To 10: arr(1, c * 2 - 1 + 5) = zz(2) & "_" & c: arr(1, c * 2 + 5) = zz(1) & "_" & c: Next
  For c = 1 To 3: arr(1, c) = .Cells(2, c).Value: Next
  For a = 2 To a
    For c = 2 To 3: arr(a, c) = .Cells(a + 1, c).Value: Next
    arr(a, 4) = .Cells(a + 1, 18): arr(a, 1) = a - 1
    For c = 1 To 10: arr(a, c * 2 - 1 + 5) = .Cells(a + 1, c + 18): Next
  Next
End With
With Sheets(4)
  .UsedRange.Clear: .UsedRange.Clear
  With .[a1].Resize(UBound(arr, 1), UBound(arr, 2))
    .Borders.LineStyle = xlContinuous: .Value = arr
  End With
  .Rows(1).AutoFilter: .UsedRange.EntireColumn.AutoFit
End With
End Sub

Изменено: Anchoret10.01.2019 10:33:35

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

#18

09.01.2019 16:23:34

Вариант для файла из сообщения №3

Код
Sub test()
'   -----------------------------------------------
    Dim i&, j&, sht As Worksheet, sh As Worksheet, lrow&
'   -----------------------------------------------
    Application.ScreenUpdating = False
    Set sht = ThisWorkbook.Worksheets("как должно быть")
    Set sh = ThisWorkbook.Worksheets("details")
    With sh
        lrow = .UsedRange.Rows.Count
        .Range("b1:c" & lrow).Copy
        sht.[b1].PasteSpecial xlPasteValues
        j = 6
        For i = 19 To 28
           .Range(.Cells(1, i), .Cells(lrow, i)).Copy
           sht.Cells(1, j).PasteSpecial xlPasteValues
           j = j + 2
        Next i
    End With
    Application.ScreenUpdating = True
    Set sh = Nothing: Set sht = Nothing
End Sub

«Все гениальное просто, а все простое гениально!!!»

 

irina_iv

Пользователь

Сообщений: 21
Регистрация: 11.12.2018

Anchoret, Nordheim,
спасибо большое, очень тронута ;). Единственное, что пишут: «can`t execute code in break mode».
Nordheim, «как должно быть» — это название листа, на который копируют?

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

#20

10.01.2019 10:32:04

Цитата
irina_iv написал:
Nordheim, «как должно быть» — это название листа, на который копируют?

Совершенно верно.

«Все гениальное просто, а все простое гениально!!!»

 

Anchoret

Пользователь

Сообщений: 1061
Регистрация: 01.01.1970

Anchoret

irina_iv, да, там была ошибка и не одна. Изменил код выше. Лист выгрузки теперь имеет индекс 4. Соответственно все индексы листов можно переименовать названиями реальных листов.

П.С.: Есть один нюанс — если даты планировалось вводить вручную и вне зависимости от времени запуска этого макроса, то грусть-печаль. Макрос затирает при выгрузке все данные под выгружаемой таблицей.

 

irina_iv

Пользователь

Сообщений: 21
Регистрация: 11.12.2018

Да, Anchoret. данные планировалось по датам вводить вручную. То есть просто скопировать с интервалом столбцы (кроме первых двух)…
Не бросайте меня, Вы и Nordheim — моя последняя надежда ;)

 

Anchoret

Пользователь

Сообщений: 1061
Регистрация: 01.01.1970

Anchoret

#23

10.01.2019 11:37:36

irina_iv, по сути код идентичный коду от Nordheim, только не очень читабельный :

Код
Sub bbb()
Dim a&, c%, zz(), sh1 As Worksheet, sh2 As Worksheet
zz = Array("Аванс", "Дата", "ЗП")
Set sh1 = Sheets(1): Set sh2 = Sheets(4)
  If sh2.AutoFilterMode = True Then sh2.ShowAllData
  a = Application.CountA(Intersect(sh1.UsedRange, sh1.Columns(3)))
  sh2.Range("D1:D" & a).Value = sh1.Range("R2:R" & a + 1).Value
  sh2.Range("A1:C" & a).Value = sh1.Range("A2:C" & a + 1).Value
  For c = 1 To 10: sh2.Cells(1, c * 2 - 1 + 5) = zz(2) & "_" & c: sh2.Cells(1, c * 2 + 5) = zz(1) & "_" & c: Next
  sh2.Cells(1, 4) = zz(0): sh2.Cells(1, 5) = zz(1)
  For c = 1 To 10
    sh2.Range(sh2.Cells(2, c * 2 - 1 + 5), sh2.Cells(a, c * 2 - 1 + 5)).Value = sh1.Range(sh1.Cells(3, c + 18), sh1.Cells(a + 1, c + 18)).Value
  Next
  sh2.[a1].Resize(a, 25).Borders.LineStyle = xlContinuous
  sh2.UsedRange.EntireColumn.AutoFit
End Sub

Изменено: Anchoret10.01.2019 12:08:28

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

#24

10.01.2019 12:18:05

Цитата
Anchoret написал:
не очень читабельный

Возможно так будет более «читабелно»  ;)

Скрытый текст

«Все гениальное просто, а все простое гениально!!!»

 

Anchoret

Пользователь

Сообщений: 1061
Регистрация: 01.01.1970

Anchoret

Nordheim, точно)
irina_iv, есть у меня стойкое подозрение, что макросы здесь и не нужны. Т.е. достаточно формул типа «=A2=такой-то лист!A3» и т.д..

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

Есть подозрение что irina_iv, на примере макросов по этой задаче, продолжит изучение VBA, что то почерпнет, увидит ошибки допущенные в собственном коде, и попытается в дальнейшем, продолжить автоматизацию работы в Excel.  :D

«Все гениальное просто, а все простое гениально!!!»

 

irina_iv

Пользователь

Сообщений: 21
Регистрация: 11.12.2018

Можно Вас, Anchoret, Nordheim еще немного помучать? :)
Anchoret, оригинально протаскивать, но замучаешься :).
Мне нужно чтобы только копировались:
«ФИО агента», «адрес» (из начала таблицы) и кусочек, начиная с [«аванс», «зп1»-«зп10»]. В квадратных скобках то, что должно копироваться через столбец на новый лист. Столбцы дата 1-дата 10 я прописала вручную, но так даже лучше.
Насколько я поняла, копирование должно быть на лист1, но у меня произошло также копирование на лист «pre», причем в принципе правильно, но 2 лишних столбца: столбец 2 с нумерацией (у меня уже был столбец с нумерацией) и столбец 5 (пустой). И изменился формат таблицы. Не очень понятно…

 

irina_iv

Пользователь

Сообщений: 21
Регистрация: 11.12.2018

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

Честно говоря, какая то ерунда получается, наверно следует таблицы , как то более грамотно составить, или я чего то не понимаю.

«Все гениальное просто, а все простое гениально!!!»

 

Anchoret

Пользователь

Сообщений: 1061
Регистрация: 01.01.1970

Anchoret

#30

10.01.2019 14:11:23

irina_iv, рыба закончилась, настала пора удочки:
— Выберите любой из вариантов кода,
— введите в нужном месте название листа-получателя
— зайдите в редактор VBE
— пошагово (F8) выполните макрос

Skip to content

6 способов быстро транспонировать таблицу

В этой статье показано, как столбец можно превратить в строку в Excel с помощью функции ТРАНСП, специальной вставки, кода VBA или же специального инструмента. Иначе говоря, мы научимся транспонировать таблицу.

В этой статье вы найдете несколько способов поменять местами строки и столбцы (или столбцы и строки), как бы вы это ни называли, это одно и то же :) Эти решения работают во всех версиях Excel 2016, 2013, 2010, 2007 и ниже, представляют множество возможных сценариев и объясняют наиболее типичные ошибки. Вот о чём мы поговорим:

  • 1. Используем специальную функцию транспонирования
  • 2. Как транспонировать с помощью формул
  • 3. Специальная вставка.
  • 4. Макрос VBA для преобразования строки в столбец
  • 5. Сводная таблица для транспонирования.
  • 6. Преобразование столбцов в строки с помощью специального инструмента

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

Довольно часто вы строите сложную таблицу только для того, чтобы в конце концов понять, что имеет смысл повернуть ее для более удобного анализа показателей или же для представления их в виде графиков.

Транспонирование – это математическая операция. Это преобразование матрицы, в результате чего столбцы становятся строками, а строки превращаются в столбцы. Говоря проще, нужно все значения в строке (горизонталь) перекинуть в столбец (вертикаль).

Способ 1. Использовать функцию ТРАНСП.

В случае, когда вам нужно быстро изменить ориентацию вашей таблицы, можно использовать функцию ТРАНСП (TRANSPOSE в англоязычной версии).

Назначение функции ТРАНСП в Excel – транспонировать строку в столбец, т. е. поменять ориентацию данных с горизонтальной на вертикальную или наоборот.

Функция ТРАНСП в Excel — синтаксис

Функция транспонировать принимает только один аргумент:

= ТРАНСП(массив)

Где массив – это диапазон для транспонирования. Данные преобразуются следующим образом: первая строка исходного диапазона становится первым столбцом нового, вторая строка становится вторым столбцом и так далее.

Синтаксис ТРАНСП не оставляет места для ошибок при создании формулы. Более сложная задача –  правильно записать её на рабочий лист. Если у вас нет большого опыта работы с формулами Excel в целом и формулами массивов в частности, внимательно следуйте приведенным ниже инструкциям.

1. Подсчитайте количество столбцов и строк в исходной таблице.

Эти числа понадобятся вам на следующем шаге.

В этом примере мы собираемся транспонировать небольшую таблицу Excel, которая показывает объем экспорта свежих фруктов по регионам:

2. Выберите такое же количество ячеек, но измените их ориентацию.

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

В нашем случае мы выбираем диапазон из 5 столбцов и 4 строк:

3. Введите формулу ТРАНСП.

Выделив этот пустой диапазон, используйте функцию транспонирования:

=ТРАНСП(A1:D5)

Вот подробные шаги:

Сначала вы вводите знак равенства, имя функции и открывающую скобку: = ТРАНСП(

Затем выберите исходный диапазон с помощью мыши или введите его вручную:

Наконец, введите закрывающую скобку, но не нажимайте клавишу Enter! На этом этапе ваша формула должна выглядеть примерно так:

функция транспонировать в excel

4. Запишите формулу.

Нажмите Ctrl + Shift + Enter, чтобы правильно закончить формулу массива. Зачем это? Потому что формула должна применяться ко всем данным. И это именно то, для чего предназначены формулы массива.

После этого Excel окружит вашу формулу транспонирования {фигурными скобками}, которые видны в строке формул и являются визуальным индикатором формулы массива. Ни в коем случае не набирайте их вручную, это не сработает.

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

Примечание. Конечно, подобным образом вы можете транспонировать отдельный столбец или одну строку. Не обязательно это должна быть целая таблица.

Преимущества функции ТРАНСП:

Основное преимущество использования этой функции заключается в том, что повернутая таблица сохраняет связь с исходной. Всякий раз, когда вы меняете исходные данные, транспонированная таблица будет меняться соответствующим образом.

Слабые стороны функции ТРАНСП:

  • Исходное форматирование не сохраняется в преобразованной таблице, как вы видите на скриншоте выше.
  • Если в исходной таблице есть пустые клетки, вместо них ячейки новой таблицы будут содержать ноль. Чтобы исправить это, используйте ТРАНСП в комбинации с функцией ЕСЛИ, как описано в этом примере ниже: Как транспонировать без нулей.
  • Вы не можете редактировать какие-либо данные в преобразованной таблице, потому что она полностью завязана на исходные данные. Если вы попытаетесь изменить какое-либо значение, то получите ошибку «Вы не можете изменить часть массива».

Итак, какой бы хорошей и простой в использовании не была бы функция ТРАНСП, ей определенно не хватает гибкости. Поэтому она может быть не самым оптимальным вариантом во многих ситуациях.

Как транспонировать таблицу без замены нулей на пробелы.

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

То есть, если при транспонировании строки в столбец программа обнаруживает пустую ячейку, то вместо нее сразу же вставляется ноль. Это особенность Экселя: стоит с пустой ячейкой произвести какую-то математическую операцию, и там тут же появляется ноль. А транспонирование в Excel – это математическая операция с матрицей значений.

С одной стороны, это выглядит несущественно, поскольку не меняет математические результаты в итогах. Но для вас эти нули могут выглядеть не совсем эстетично, так как меняют внешний вид данных. Ну а если они появляются посреди текстовых значений – это совсем некрасиво.

Если вы хотите оставить в новой таблице по-прежнему пустые ячейки, а не нули, то вложите функцию ЕСЛИ в формулу ТРАНСП, чтобы предварительно проверить, является ли ячейка пустой. Если она пуста, функция ЕСЛИ вернет пустую строку («»), в противном случае предоставит значение для транспонирования:

=ТРАНСП(ЕСЛИ(A1:D5=»»;»»;A1:D5))

Введите формулу, как описано выше (не забудьте нажать Ctrl + Shift + Enter, чтобы правильно завершить формулу массива), и вы получите результат, подобный этому:

Как видите, мы транспонируем не все ячейки, а только непустые.

Советы по использованию ТРАНСП

Как вы только что видели, функция ТРАНСП имеет ряд особенностей, которые могут сбить с толку неопытных пользователей. Приведенные ниже советы помогут вам избежать некоторых типичных ошибок.

1. Как редактировать формулу?

Как функция массива, ТРАНСП не позволяет изменять часть возвращаемого массива. Чтобы отредактировать формулу транспонирования, выберите весь диапазон, к которому относится формула, внесите необходимые изменения и нажмите Ctrl + Shift + Enter, чтобы сохранить обновленную формулу.

2. Как удалить формулу?

Чтобы удалить формулу транспонирования с листа, выберите весь диапазон, на который имеется ссылка в формуле, и нажмите клавишу Del.

3. Как заменить формулу на значения?

Когда вы переворачиваете таблицу с помощью функции ТРАНСП, исходная и новая таблицы связываются. Это означает, что всякий раз, когда вы изменяете какое-либо значение в исходной таблице, соответствующее значение в новой изменяется автоматически.

Если вы хотите разорвать связь между ними, замените формулы вычисленными значениями. Для этого выберите все ячейки преобразованной таблицы, затем нажмите Ctrl + C, чтобы скопировать их в буфер обмена. Кликните правой кнопкой мыши и выберите в контекстном меню «Специальная вставка» > « Значения». Или используйте для вставки значений вместо формул комбинацию клавиш Ctrl+Alt+V.

Способ 2. Как транспонировать с помощью формул

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

Для создания ссылок на строки и столбцы нам понадобятся четыре функции из категории Ссылки и массивы:

  • Функция АДРЕС(номер_строки; номер_столбца) – выдает адрес ячейки по номеру строки и столбца на листе, т.е. АДРЕС(2;3) выдаст, например, ссылку на C2.
  • Функция ДВССЫЛ(ссылка_в_виде_текста) – преобразует текстовую строку, например, «F3» в настоящую ссылку на ячейку F3.
  • Функции СТРОКА() и СТОЛБЕЦ() — выдают номер строки и столбца для заданной ячейки, например =СТРОКА(F1) выдаст 1, а формула =СТОЛБЕЦ(А3) возвратит 3.

Теперь соединяем эти функции, чтобы получить нужную нам ссылку на исходную таблицу. Предположим, координаты её верхнего левого угла – A1.

Вводим в любую свободную ячейку (скажем, в A8) вот такую формулу:

=ДВССЫЛ(АДРЕС(СТОЛБЕЦ(A1);СТРОКА(A1)))

в английской версии Excel это будет =INDIRECT(ADDRESS(COLUMN(A1),ROW(A1)))

Чтобы столбцы превратились в строки, копируем (протягиваем) формулу вправо и вниз, перетащив маленький черный крестик в нижнем правом углу выбранных ячеек. В итоге должно получиться примерно следующее:

транспонировать формулы в excel

Вот и все! В вашей вновь созданной таблице все столбцы поменяны местами со строками.

Если ваши данные начинаются с некоторой строки, отличной от 1, и столбца, отличного от A, вам придется использовать немного более сложную формулу:

=ДВССЫЛ(АДРЕС(СТОЛБЕЦ(B6) — СТОЛБЕЦ($B$6) + СТРОКА($B$6); СТРОКА(B6) — СТРОКА($B$6) + СТОЛБЕЦ($B$6)))

Где B6 — самая верхняя левая ячейка исходной таблицы. Также обратите внимание на использование абсолютных и относительных ссылок.

Однако транспонированные данные выглядят очень просто и тускло по сравнению с исходными. Всё форматирование потеряно.

Но не расстраивайтесь, эту проблему легко решить. Чтобы восстановить исходное форматирование, выполните следующие действия:

  • Скопируйте исходную таблицу.
  • Выделите получившуюся таблицу.
  • Щелкните её правой кнопкой мыши и выберите «Параметры вставки» > «Форматирование» .

Преимущества: эта формула обеспечивает более гибкий способ замены строк и столбцов в Excel. Это позволяет вносить любые изменения в итоговую таблицу, поскольку вы используете обычную формулу, а не формулу массива.

Недостатки: вижу только один — теряется форматирование данных. Хотя вы можете быстро восстановить его, как описано выше.

Способ 3. Специальная вставка

Предположим, у вас есть набор данных, аналогичный тому, что вы видите в верхней части рисунка ниже. Названия стран организованы в столбцы. Но их список слишком длинный, поэтому нам лучше перевернуть столбцы в строки, чтобы всё поместилось на экране:

как транспонировать строки в столбцы в Excel

Для этого выполните следующие действия:

  1. Выберите исходные данные. Чтобы быстро выделить всю таблицу, то есть все ячейки с данными в ней, нажмите Ctrl + Home, а потом Ctrl + Shift + End. Вы также можете транспонировать отдельную строку или столбец.
  2. Скопируйте выделенное, щелкнув правой кнопкой мыши и выбрав пункт Копировать в контекстном меню, или нажав Ctrl + C.
  3. Выберите первую позицию целевого диапазона.
    Обязательно выберите клетку, расположенную вне вашей исходной таблицы, чтобы области копирования и области вставки не перекрывались. Например, если у вас сейчас 4 столбца и 10 строк, преобразованная таблица будет иметь 10 столбцов и 4 строки.
  4. Щелкните правой кнопкой мыши целевую ячейку и выберите «Специальная вставка» в контекстном меню, затем выберите «Транспонировать».

транспонированная вставка в excel

Как вы только что видели, функция «Специальная вставка» позволяет выполнять преобразование из строки в столбец (или из столбца в строку) буквально за несколько секунд. Этот метод также копирует форматирование ваших исходных данных, чем добавляет еще один плюс в свою пользу.

Однако у этого подхода есть два недостатка, которые не позволяют называть его идеальным решением чтобы перевернуть данные в Excel:

  • Он не слишком подходит для вращения полнофункциональных таблиц Excel. Если вы скопируете всю таблицу и затем откроете диалоговое окно «Специальная вставка», то обнаружите, что пункт «Транспонировать» неактивен. В этом случае вам нужно либо скопировать ее без заголовков столбцов, либо сначала преобразовать ее в обычный диапазон.
  • Операция Специальная вставка > Транспонировать не связывает новую таблицу с исходными данными. Поэтому она хорошо подходит только для одноразовых преобразований. Всякий раз, когда исходные данные меняются, вам нужно будет повторить процесс и повернуть таблицу заново. Никто не захочет тратить свое время на преобразование одних и тех же строк и столбцов снова и снова, верно?

Как транспонировать таблицу и связать ее с исходными данными

Давайте посмотрим, как вы можете превращать строки в столбцы, используя уже знакомую нам технику специальной вставки, но при этом связывая полученную таблицу с исходным набором данных. То есть, всякий раз, когда вы меняете данные в исходной, перевернутая будет отражать изменения и обновляться соответствующим образом. Чуть выше мы назвали отсутствие такой связи недостатком. А сейчас посмотрим, как этот недостаток можно обойти.

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

  1. Результат будет примерно таким:

  1. Выберите новую таблицу и откройте диалоговое окно Excel «Найти и заменить» (или нажмите Ctrl + H, чтобы сразу перейти на вкладку Заменить).
  2. Замените все знаки «=» на «###» или любые другие символы, которых нет нигде в ваших реальных данных. Таким нехитрым образом мы преобразуем наши формулы-ссылки в текст.

Эта операция превратит ваши данные во что-то немного пугающее, как вы видите на скриншоте ниже. Но не паникуйте – еще 2 шага, и вы достигнете желаемого результата.

  1. Скопируйте диапазон со значениями «###» в буфер обмена, а затем используйте Специальная вставка > Транспонировать, чтобы преобразовать столбцы в строки.

  1. Наконец, откройте диалоговое окно «Найти и заменить» еще раз, чтобы отменить изменение, т.е. обратно заменить все «###» на «=», и восстановить ссылки на исходные данные.

Это длинноватое, но элегантное решение, не правда ли? Единственным недостатком этого подхода является то, что исходное форматирование теряется в процессе, и вам нужно будет восстановить его вручную (в дальнейшем в этом руководстве я покажу вам быстрый способ сделать это).

Способ 4. Транспонировать матрицу данных в Excel с помощью макроса VBA

Чтобы автоматизировать преобразование строк в столбцы в Excel, вы можете использовать следующий макрос:

  Sub TransposeColumnsRows()
     Dim SourceRange As Range
     Dim DestRange As Range
      Set SourceRange = Application.InputBox(Prompt:="Выделите диапазон для транспонирования", Title:="Транспонирование строк в столбцы", Type:=8)
     Set DestRange = Application.InputBox(Prompt:="Укажите верхнюю левую ячейку новой таблицы", Title:="Транспонирование строк в столбцы", Type:=8)
      SourceRange.Copy
     DestRange.Select
     Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
     Application.CutCopyMode = False
  End Sub 

Чтобы добавить макрос на лист, следуйте инструкциям, описанным в разделе Как вставить и запустить код VBA в Excel .

Примечание. Транспонирование с помощью VBA имеет ограничение в 65536 элементов. Если ваш массив превышает этот предел, дополнительные данные будут автоматически отброшены.

Как использовать макрос для преобразования строки в столбец

Вставив макрос в книгу, выполните следующие шаги, чтобы повернуть таблицу:

  1. Откройте целевой рабочий лист, нажмите Alt + F8, выберите макрос TransposeColumnsRows и нажмите «Выполнить».

  1. Выберите диапазон, который вы хотите преобразовать, и нажмите OK :

  1. Выберите верхнюю левую позицию целевого диапазона и нажмите ОК:

Матрица значений транспонирована. Наслаждайтесь результатом :)

как транспонировать строку в столбец excel

Способ 5. Сводная таблица.

Еще один способ как можно транспонировать таблицу в Excel — с помощью сводной таблицы. К сожалению, этот способ работает только в одном направлении — из столбцов переворачивает данные в строки. Но его преимущество, по сравнению с предыдущими, – это возможность фильтровать данные и использовать всю мощь сводных таблиц. 

Сначала необходимо создать сводную таблицу (здесь есть подробная инструкция). Выделяем исходные данные:

Создаем её на новом листе.

В свойствах сводной таблицы отключаем общие и промежуточные итоги по столбцам и строкам.

Перетаскиваем поля в макете таблицы, и получаем результат – таблица повёрнута набок.

Преобразуйте столбцы в строки с помощью инструмента транспонирования

Если вам нужно выполнять преобразования строки в столбец достаточно часто, то возможно, вы действительно ищете более быстрый и простой способ. К счастью, у меня есть такой способ в моем Excel, как и у других пользователей надстройки Ultimate Suite  :)

Позвольте мне продемонстрировать вам, как перенести строки в столбцы в Excel буквально за пару кликов при помощи инструмента транспонирования таблицы:

  1. Выделите любую отдельную ячейку в таблице, перейдите на вкладку AblebitsTools > Transform и нажмите кнопку Transpose.

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

Если вы хотите Создать ссылки на исходные данные, чтобы повернутая таблица обновлялась автоматически при каждом изменении исходной таблицы, выберите соответствующий вариант:

Готово! Таблица транспонирована:

Если вам интересно попробовать этот и более 60 других профессиональных инструментов для Excel, я приглашаю вас загрузить пробную версию  Ultimate Suite. 

Итак, вы можете выбрать для себя любой из этих шести методов транспонирования таблицы в Excel.

Благодарю вас за чтение и надеюсь увидеть вас в нашем блоге!

Как сделать диаграмму Ганта Думаю, каждый пользователь Excel знает, что такое диаграмма и как ее создать. Однако один вид графиков остается достаточно сложным для многих — это диаграмма Ганта.  В этом кратком руководстве я постараюсь показать…
Как сделать автозаполнение в Excel В этой статье рассматривается функция автозаполнения Excel. Вы узнаете, как заполнять ряды чисел, дат и других данных, создавать и использовать настраиваемые списки в Excel. Эта статья также позволяет вам убедиться, что вы…
Быстрое удаление пустых столбцов в Excel В этом руководстве вы узнаете, как можно легко удалить пустые столбцы в Excel с помощью макроса, формулы и даже простым нажатием кнопки. Как бы банально это ни звучало, удаление пустых…
Как быстро заполнить пустые ячейки в Excel? В этой статье вы узнаете, как выбрать сразу все пустые ячейки в электронной таблице Excel и заполнить их значением, находящимся выше или ниже, нулями или же любым другим шаблоном. Заполнять…

В предыдущих статьях мы с вами уже рассматривали вопрос о том, как в Excel преобразовать строку в столбец, то есть транспонировать данные. Так как на практике данная необходимость может встречается довольно часто, мы рассмотрели создание шаблона для транспонирования данных из строки в столбец с использованием функции ТРАНСП (ТРАНСП — Автоматическое транспонироване данных в Excel).

В этой статье мы рассмотрим абстрактную, более обобщенную задачу транспонирования. В этот раз мы прибегнем к использованию Макросов.

Допустим у нас есть данные на одном листе книги для транспонирования и мы хотим перевести все строки в столбцы (т.е. выполнить транспонирование). Если мы просто выделим весь лист, то при попытке транспонирования через специальную вставку (как в первой статье) мы получим ОШИБКУ. Ошибка появится из-за того, что лист Excel не квадратный, т.е. строк в нем гораздо больше чем столбцов. Отсюда мы получили ограничение для данных которые могут быть транспонированы: ширина и длина таблицы данных для транспонирования не может превышать ширины листа Excel, а именно 16 384 ячейки для MS Excel 2010.

Но для столь большого диапазона данных операция транспонирования будет проходить крайне долго (хотя, конечно, зависит от компьютера).

Если требуется выполнять операцию постоянно, то мы имеем представление о размере таблицы данных для транспонирования и потому, для ускорения операции мы можем сократить диапазон. В нашем примере до A1:X1000. Запишем вышеизложенное макросом:

Макрос Транспонирования (для тех, кто часто транспонирует)

Макрос Транспонирования

Макрос копирует диапазон A1:X1000 на активном листе, создает новый лист в книге и транспонирует данные уже в новый лист.

Теперь Вы можете изменить диапазон на свой (необходимый) и использовать Макрос в работе.

он же текстом:

Sub Макрос1()
Range("A1:X1000").Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
End Sub

Очень надеемся, что наша статья помогла Вам в решении Вашей проблемы. Будем благодарны, если Вы нажмете +1 и/или Мне нравится внизу данной статьи или поделитесь с друзьями с помощью кнопок расположенных ниже.

Спасибо за внимание.

SirExcel.ru – Безграничные возможности Excel

Понравилась статья? Поделить с друзьями:
  • Макрос для переноса в один столбец excel
  • Макрос для перемещения строк в excel
  • Макрос для переименования файлов в excel
  • Макрос для матрицы в excel
  • Макрос для копирования ячеек excel