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

Вход

Регистрация

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

 

= Мир MS Excel/Данные в один столбец - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Данные в один столбец
baaur Дата: Суббота, 04.10.2014, 01:13 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 70
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый вечер всем!
Уважаемые форумчане помогите подредактировать макрос который нашел в сети, он меня устраивает но,
суть такова необходимо что бы макрос собирал данные проходя по столбцам а не по строкам.
то есть данный макрос вставляет данные по ячейкам A1, B1, C1 и тд.
а нужно что бы он вставлял данные по очередности с ячеек A1, A2,A3.....B1, B2, B3 и тд.
(Макрос работает так что нужно выделить требуемый диапазон и он вставит данные в Лист2)
Заранее всем спасибо.
К сообщению приложен файл: 5198763.xlsm (14.8 Kb)
 
Ответить
СообщениеДобрый вечер всем!
Уважаемые форумчане помогите подредактировать макрос который нашел в сети, он меня устраивает но,
суть такова необходимо что бы макрос собирал данные проходя по столбцам а не по строкам.
то есть данный макрос вставляет данные по ячейкам A1, B1, C1 и тд.
а нужно что бы он вставлял данные по очередности с ячеек A1, A2,A3.....B1, B2, B3 и тд.
(Макрос работает так что нужно выделить требуемый диапазон и он вставит данные в Лист2)
Заранее всем спасибо.

Автор - baaur
Дата добавления - 04.10.2014 в 01:13
nilem Дата: Суббота, 04.10.2014, 09:23 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
попробуйте так:
[vba]
Код
Sub tt()
Dim rng As Range, i&, j&, r&
Set rng = Selection
With Sheets(2)
     For i = 1 To rng.Columns.Count
         For j = 1 To rng.Rows.Count
             If rng(j, i) <> "" Then r = r + 1: .Cells(r, 1) = rng(j, i)
         Next j
     Next i
End With
End Sub
[/vba]


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениепопробуйте так:
[vba]
Код
Sub tt()
Dim rng As Range, i&, j&, r&
Set rng = Selection
With Sheets(2)
     For i = 1 To rng.Columns.Count
         For j = 1 To rng.Rows.Count
             If rng(j, i) <> "" Then r = r + 1: .Cells(r, 1) = rng(j, i)
         Next j
     Next i
End With
End Sub
[/vba]

Автор - nilem
Дата добавления - 04.10.2014 в 09:23
Tachkin Дата: Суббота, 04.10.2014, 09:42 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 63
Репутация: 9 ±
Замечаний: 20% ±

Excel 2007
Как то так
[vba]
Код
Sub tt()
   r = 1
   With Sheets(2)
     For i = Selection.Column To Selection.Column + Selection.Columns.Count
        For j = Selection.Row To Selection.Row + Selection.Rows.Count
           If Selection.Cells(j, i) <> "" Then
             .Cells(r, 1) = Selection.Cells(j, i)
             r = r + 1
           End If
        Next j
     Next i
   End With
End Sub
[/vba]

Модно проще, наверно, но я еще только учус ))
 
Ответить
СообщениеКак то так
[vba]
Код
Sub tt()
   r = 1
   With Sheets(2)
     For i = Selection.Column To Selection.Column + Selection.Columns.Count
        For j = Selection.Row To Selection.Row + Selection.Rows.Count
           If Selection.Cells(j, i) <> "" Then
             .Cells(r, 1) = Selection.Cells(j, i)
             r = r + 1
           End If
        Next j
     Next i
   End With
End Sub
[/vba]

Модно проще, наверно, но я еще только учус ))

Автор - Tachkin
Дата добавления - 04.10.2014 в 09:42
baaur Дата: Суббота, 04.10.2014, 09:59 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 70
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Большое спасибо всем работает!!!! hands hands hands
 
Ответить
СообщениеБольшое спасибо всем работает!!!! hands hands hands

Автор - baaur
Дата добавления - 04.10.2014 в 09:59
RAN Дата: Суббота, 04.10.2014, 10:27 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Sub qq()
Dim r As Range, k& '(as long)
      With Sheets(2)
          For Each r In Selection.Columns
              .Cells(.Rows.Count, "H").End(xlUp).Offset(k).Resize(r.Rows.Count) = r.Value
              k = 1
          Next
      End With
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Суббота, 04.10.2014, 10:47
 
Ответить
Сообщение[vba]
Код
Sub qq()
Dim r As Range, k& '(as long)
      With Sheets(2)
          For Each r In Selection.Columns
              .Cells(.Rows.Count, "H").End(xlUp).Offset(k).Resize(r.Rows.Count) = r.Value
              k = 1
          Next
      End With
End Sub
[/vba]

Автор - RAN
Дата добавления - 04.10.2014 в 10:27
baaur Дата: Суббота, 04.10.2014, 10:43 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 70
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо Ran так же работает прекрасно!!! + пустые ячейки тоже пригодится.

А что это значит
i&, j&, r& или k&
 
Ответить
СообщениеСпасибо Ran так же работает прекрасно!!! + пустые ячейки тоже пригодится.

А что это значит
i&, j&, r& или k&

Автор - baaur
Дата добавления - 04.10.2014 в 10:43
RAN Дата: Суббота, 04.10.2014, 10:49 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Исправил старания Пунтосвитчера, добавил коммент.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеИсправил старания Пунтосвитчера, добавил коммент.

Автор - RAN
Дата добавления - 04.10.2014 в 10:49
baaur Дата: Суббота, 04.10.2014, 11:11 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 70
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо.
 
Ответить
СообщениеСпасибо.

Автор - baaur
Дата добавления - 04.10.2014 в 11:11
baaur Дата: Понедельник, 13.10.2014, 10:57 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 70
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Уважаемые форумчане? А как переделать макрос что бы данные переносились не в Лист2, а в новый лист?

Пытаюсь вместо
With Sheets(2)

поставить
With Sheets.Add After:=ActiveSheet

выдает ошибку, что не так делаю?
 
Ответить
СообщениеУважаемые форумчане? А как переделать макрос что бы данные переносились не в Лист2, а в новый лист?

Пытаюсь вместо
With Sheets(2)

поставить
With Sheets.Add After:=ActiveSheet

выдает ошибку, что не так делаю?

Автор - baaur
Дата добавления - 13.10.2014 в 10:57
_Boroda_ Дата: Понедельник, 13.10.2014, 15:39 | Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 16957
Репутация: 6631 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Так нужно?
[vba]
Код
Sub qttq()
      Dim r As Range, k&, sn_, sn1_
   '   Application.ScreenUpdating = 0
      sn_ = ActiveSheet.Name
      sn1_ = Sheets.Add(, ActiveSheet).Name
      Sheets(sn_).Activate
      With Sheets(sn1_)
          For Each r In Selection.Columns
              .Cells(.Rows.Count, "H").End(xlUp).Offset(k).Resize(r.Rows.Count) = r.Value
              k = 1
          Next
      End With
    ' Application.ScreenUpdating = 1
End Sub
[/vba]
К сообщению приложен файл: 5198763_1.xlsm (19.7 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
[vba]
Код
Sub qttq()
      Dim r As Range, k&, sn_, sn1_
   '   Application.ScreenUpdating = 0
      sn_ = ActiveSheet.Name
      sn1_ = Sheets.Add(, ActiveSheet).Name
      Sheets(sn_).Activate
      With Sheets(sn1_)
          For Each r In Selection.Columns
              .Cells(.Rows.Count, "H").End(xlUp).Offset(k).Resize(r.Rows.Count) = r.Value
              k = 1
          Next
      End With
    ' Application.ScreenUpdating = 1
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 13.10.2014 в 15:39
baaur Дата: Понедельник, 13.10.2014, 20:56 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 70
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Так нужно?

Да, спасибо! Работает!
Вам пришлось почти переделать макрос почти полностью, не думал что будет так сложно....
 
Ответить
Сообщение
Так нужно?

Да, спасибо! Работает!
Вам пришлось почти переделать макрос почти полностью, не думал что будет так сложно....

Автор - baaur
Дата добавления - 13.10.2014 в 20:56
  • Страница 1 из 1
  • 1
Поиск:

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