Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Разбиение столбца на несколько столбцов - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Разбиение столбца на несколько столбцов
cave76 Дата: Вторник, 25.12.2012, 10:42 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Подскажите, пожалуйста, как с помощью штатных средств или при помощи макроса перенести ячейки из столбцов в строки? Транспонировать не подходит, т.к. в документе более 5000 строк. Один человек написал макрос, но он работает только с целыми числовыми значениями. При работе с текстом или десятичными выдает ошибку. Сам не знаю что менять,, в экселе почти 0...
[vba]
Код
Sub Macros()
Dim i As Long, r As Long, n As Variant
n = InputBox("Введите количество столбцов," & Chr(10) & "на которое разбить столбец А", _
              "Ввод количества столбцов", 6)
If n <> "" Then
Application.ScreenUpdating = False
Dim MyArray As Variant, CArray() As Long
r = Int(1 + Columns(1).End(xlDown).Row / n)
ReDim CArray(1 To r, 1 To n)
MyArray = Range("A1:A" & Columns(1).End(xlDown).Row).Value
For i = 1 To UBound(MyArray)
      CArray(Int((i + n - 1) / n), ((i - 1) Mod n) + 1) = MyArray(i, 1)
Next i
Range("A1:A" & Columns(1).End(xlDown).Row).ClearContents
Range("A1").Resize(r, n) = CArray()
Application.ScreenUpdating = True
End If
End Sub
[/vba]
К сообщению приложен файл: 7674737.png (43.4 Kb)
 
Ответить
СообщениеПодскажите, пожалуйста, как с помощью штатных средств или при помощи макроса перенести ячейки из столбцов в строки? Транспонировать не подходит, т.к. в документе более 5000 строк. Один человек написал макрос, но он работает только с целыми числовыми значениями. При работе с текстом или десятичными выдает ошибку. Сам не знаю что менять,, в экселе почти 0...
[vba]
Код
Sub Macros()
Dim i As Long, r As Long, n As Variant
n = InputBox("Введите количество столбцов," & Chr(10) & "на которое разбить столбец А", _
              "Ввод количества столбцов", 6)
If n <> "" Then
Application.ScreenUpdating = False
Dim MyArray As Variant, CArray() As Long
r = Int(1 + Columns(1).End(xlDown).Row / n)
ReDim CArray(1 To r, 1 To n)
MyArray = Range("A1:A" & Columns(1).End(xlDown).Row).Value
For i = 1 To UBound(MyArray)
      CArray(Int((i + n - 1) / n), ((i - 1) Mod n) + 1) = MyArray(i, 1)
Next i
Range("A1:A" & Columns(1).End(xlDown).Row).ClearContents
Range("A1").Resize(r, n) = CArray()
Application.ScreenUpdating = True
End If
End Sub
[/vba]

Автор - cave76
Дата добавления - 25.12.2012 в 10:42
Саня Дата: Вторник, 25.12.2012, 10:59 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
это [vba]
Код
, CArray() As Long
[/vba] замени на [vba]
Код
, CArray() ' As Long
[/vba]
 
Ответить
Сообщениеэто [vba]
Код
, CArray() As Long
[/vba] замени на [vba]
Код
, CArray() ' As Long
[/vba]

Автор - Саня
Дата добавления - 25.12.2012 в 10:59
AlexM Дата: Вторник, 25.12.2012, 12:20 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Цитата (cave76)
Один человек написал макрос, но он работает только с целыми числовыми значениями

Как в ЗАДАНИИ показано так и написал. smile
Хотя согласен, As Long не нужен.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Вторник, 25.12.2012, 12:21
 
Ответить
Сообщение
Цитата (cave76)
Один человек написал макрос, но он работает только с целыми числовыми значениями

Как в ЗАДАНИИ показано так и написал. smile
Хотя согласен, As Long не нужен.

Автор - AlexM
Дата добавления - 25.12.2012 в 12:20
Serge_007 Дата: Вторник, 25.12.2012, 12:30 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (cave76)
как с помощью штатных средств перенести ячейки из столбцов в строки?

Код
=ИНДЕКС(СТРОКА($A$1:$F$3)*6+СТОЛБЕЦ($A$1:$F$3)-6;СТРОКА();СТОЛБЕЦ())
К сообщению приложен файл: cave76.xls (24.0 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (cave76)
как с помощью штатных средств перенести ячейки из столбцов в строки?

Код
=ИНДЕКС(СТРОКА($A$1:$F$3)*6+СТОЛБЕЦ($A$1:$F$3)-6;СТРОКА();СТОЛБЕЦ())

Автор - Serge_007
Дата добавления - 25.12.2012 в 12:30
KuklP Дата: Среда, 02.01.2013, 18:15 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Сереж,
Цитата (cave76)
Один человек написал макрос, но он работает только с целыми числовыми значениями. При работе с текстом или десятичными выдает ошибку. Сам не знаю что менять,, в экселе почти 0...

Саня прав...


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеСереж,
Цитата (cave76)
Один человек написал макрос, но он работает только с целыми числовыми значениями. При работе с текстом или десятичными выдает ошибку. Сам не знаю что менять,, в экселе почти 0...

Саня прав...

Автор - KuklP
Дата добавления - 02.01.2013 в 18:15
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!