Привет, дорогой коллективный разум, В первую очередь спасибо всем пользователям за тонны всевозможной информации и полезных советов. Очень помогает.
Моя задача состоит в том чтобы пренести информацию из нескольких столбцов друг под друга в один столбец. Все просто, пример:
Было два столбца, три строки 1 4 2 5 3
Стало 1 столбец, информация из второго перенесена под первый 1 2 3 4 5
Был бы третий стобец, он бы встал под второй и т.д.
С помощью гугла, книг и такой-то матери я состряпал этот код, который работает (!), но мне важно понять, как именно он работает. Взгляните:
Sub DrugPodDrugom() Dim stroka As Integer, stolbez As Integer ----------обозначили переменные, тут все понятно Dim wsheet As Worksheet-------------- обозначили переменную рабочая таблица, в которой будет работать сей богоугодный скрипт
Set wsheet = ActiveSheet ----------- активная таблица= рабочая таблица или типа того
For stolbez = 1 To 2 ------------------ петля счета стобцов, нужно ввести точное количество для каждого случая For stroka = 1 To 3--------------------- то же самое для строк wsheet.Cells((stolbez - 1) * 3 + stroka , 1).Value = wsheet.Cells(stroka, stolbez).Value -----------как описать то что тут происходит?? Next stroka Next stolbez End Sub
Думаю вы уже поняли что к чему, помогите осмыслить накоденное. Спасибо.
Привет, дорогой коллективный разум, В первую очередь спасибо всем пользователям за тонны всевозможной информации и полезных советов. Очень помогает.
Моя задача состоит в том чтобы пренести информацию из нескольких столбцов друг под друга в один столбец. Все просто, пример:
Было два столбца, три строки 1 4 2 5 3
Стало 1 столбец, информация из второго перенесена под первый 1 2 3 4 5
Был бы третий стобец, он бы встал под второй и т.д.
С помощью гугла, книг и такой-то матери я состряпал этот код, который работает (!), но мне важно понять, как именно он работает. Взгляните:
Sub DrugPodDrugom() Dim stroka As Integer, stolbez As Integer ----------обозначили переменные, тут все понятно Dim wsheet As Worksheet-------------- обозначили переменную рабочая таблица, в которой будет работать сей богоугодный скрипт
Set wsheet = ActiveSheet ----------- активная таблица= рабочая таблица или типа того
For stolbez = 1 To 2 ------------------ петля счета стобцов, нужно ввести точное количество для каждого случая For stroka = 1 To 3--------------------- то же самое для строк wsheet.Cells((stolbez - 1) * 3 + stroka , 1).Value = wsheet.Cells(stroka, stolbez).Value -----------как описать то что тут происходит?? Next stroka Next stolbez End Sub
Думаю вы уже поняли что к чему, помогите осмыслить накоденное. Спасибо.enginero
----------------- ;)
Сообщение отредактировал enginero - Суббота, 08.04.2017, 12:19
Pelena, тогда не работает выделение комментариев зеленым, ухудшается читаемость. Код не такой уж и большой. Настаиваете на # и убрать комменты? Вы - босс.
Pelena, тогда не работает выделение комментариев зеленым, ухудшается читаемость. Код не такой уж и большой. Настаиваете на # и убрать комменты? Вы - босс.enginero
----------------- ;)
Сообщение отредактировал enginero - Суббота, 08.04.2017, 12:23
Public Sub www() Dim c& With ActiveSheet.UsedRange For c = 2 To .Columns.Count .Columns(c).Cut Cells(.Parent.Rows.Count, 1).End(xlUp)(2, 1) Next End With End Sub
[/vba] Что неясно, становимся на слово и жмем F1, а уж если чего в справке не найдете, тогда сюда с вопросом. И да, код-таки оформите тегами.
Проще: [vba]
Код
Public Sub www() Dim c& With ActiveSheet.UsedRange For c = 2 To .Columns.Count .Columns(c).Cut Cells(.Parent.Rows.Count, 1).End(xlUp)(2, 1) Next End With End Sub
[/vba] Что неясно, становимся на слово и жмем F1, а уж если чего в справке не найдете, тогда сюда с вопросом. И да, код-таки оформите тегами.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
Сообщение отредактировал KuklP - Суббота, 08.04.2017, 13:36