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

Вход

Регистрация

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

 

= Мир MS Excel/Копирование определенного количества строк на другую вкладку - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Копирование определенного количества строк на другую вкладку
thrasher Дата: Четверг, 14.11.2013, 23:07 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 63
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Доброго времени суток.
Бьюсь с проблемой. Нужно перенести каждые 6 строк из столбца B на вкладке "Данные" и копировать данные из столбца С с транспонированием на вкладку "Сводник". Данные разделены единицой. Никак не получается сделать толковую петлю, которая бы прошлась по всему диапазону. Буду признателен за любую помощь.
К сообщению приложен файл: 2368860.xlsm (20.7 Kb)
 
Ответить
СообщениеДоброго времени суток.
Бьюсь с проблемой. Нужно перенести каждые 6 строк из столбца B на вкладке "Данные" и копировать данные из столбца С с транспонированием на вкладку "Сводник". Данные разделены единицой. Никак не получается сделать толковую петлю, которая бы прошлась по всему диапазону. Буду признателен за любую помощь.

Автор - thrasher
Дата добавления - 14.11.2013 в 23:07
SkyPro Дата: Пятница, 15.11.2013, 00:09 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Если кол-во строк не меняется и разделитель всегда 1, то:
[vba]
Код
Sub cpy()
Dim x
Dim arResult(1 To 1000000, 1 To 6)
Dim r&, i&, v As Byte, z As Byte
x = Sheets("Данные").Range("B4:C" & Sheets("Данные").[b1000000].End(xlUp).Row).Value
i = 0
For r = 1 To UBound(x)
     If x(r, 1) = 1 Then
         i = i + 1
         z = 0
         For v = 1 To 6
             arResult(i, v) = x(r + z, 2)
         z = z + 1
         Next
     End If
Next
Sheets("Сводник").[b2].Resize(i, 6) = arResult
End Sub
[/vba]


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Пятница, 15.11.2013, 00:36
 
Ответить
СообщениеЕсли кол-во строк не меняется и разделитель всегда 1, то:
[vba]
Код
Sub cpy()
Dim x
Dim arResult(1 To 1000000, 1 To 6)
Dim r&, i&, v As Byte, z As Byte
x = Sheets("Данные").Range("B4:C" & Sheets("Данные").[b1000000].End(xlUp).Row).Value
i = 0
For r = 1 To UBound(x)
     If x(r, 1) = 1 Then
         i = i + 1
         z = 0
         For v = 1 To 6
             arResult(i, v) = x(r + z, 2)
         z = z + 1
         Next
     End If
Next
Sheets("Сводник").[b2].Resize(i, 6) = arResult
End Sub
[/vba]

Автор - SkyPro
Дата добавления - 15.11.2013 в 00:09
thrasher Дата: Пятница, 15.11.2013, 18:56 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 63
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
SkyPro, большое спасибо за ответ, код работает. hands
 
Ответить
СообщениеSkyPro, большое спасибо за ответ, код работает. hands

Автор - thrasher
Дата добавления - 15.11.2013 в 18:56
RAN Дата: Пятница, 15.11.2013, 20:46 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Во придумал! Сам себе удивляюсь! :D

[vba]
Код
Sub qq()
     With CreateObject("scripting.dictionary")
         For i = 5 To Sheets("Данные").Cells(Rows.Count, 2).End(xlUp).Row - 1 Step 6
             .Item(i) = Application.Transpose(Sheets("Данные").Range("C" & i & ":C" & i + 4).Value)
         Next
         arr = Application.Transpose(Application.Transpose(.items))
         Sheets("Сводник Итог").Range("B4").Resize(.Count, 5) = arr
     End With
End Sub
[/vba]


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

[vba]
Код
Sub qq()
     With CreateObject("scripting.dictionary")
         For i = 5 To Sheets("Данные").Cells(Rows.Count, 2).End(xlUp).Row - 1 Step 6
             .Item(i) = Application.Transpose(Sheets("Данные").Range("C" & i & ":C" & i + 4).Value)
         Next
         arr = Application.Transpose(Application.Transpose(.items))
         Sheets("Сводник Итог").Range("B4").Resize(.Count, 5) = arr
     End With
End Sub
[/vba]

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

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