Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 21.12.2007, 18:31   #11
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

А если чуть-чуть подумать?
Неужели слишком не понятно сделано?
По всему коду заменить ссылки на столбец и все. Специально для удобства сделал так, что сначала формируется массив, а затем (из этого массива) можно данные вставлять куда угодно: на новый лист, в новую книгу и т.д.
Нужно подробнее?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 22.12.2007, 10:54   #12
Natusya
 
Регистрация: 20.11.2007
Сообщений: 8
По умолчанию

Ну, не программист я. Попробовала заменить A на I , не работает, ругается! Вам же не сложно, выложить готовый код...
Natusya вне форума
Старый 22.12.2007, 12:04   #13
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Попробуйте не просто использовать, а разобраться.
Код:
Sub Transp_3()

    Dim Dan() 'объявляем массив
    Dim A As Long, i As Long, j As Long, x As Integer, y As Long
    Const Nstolb = 9 'номер нужного столбца
    
    A = ActiveSheet.Range("I65536").End(xlUp).Row 'последняя строка в столбце "I"
    'Если данные в другом столбце, то вместо "I65536" вставить что нужно
    x = Int(A / 3 + 1) 'количество троек данных для последующей вставки данных
    ReDim Dan(1 To A) 'определяем размерность массива
    For i = 1 To A
        Dan(i) = Cells(i, Nstolb) 'формируем массив
    Next i
    Range(Cells(1, Nstolb), Cells(A, Nstolb)).ClearContents 'очистка ячеек
    
'Вставляем данные в "Лист2", начиная с ячейки "I1"
    Sheets("Лист2").Select 'выбираем нужный лист
    y = 1 'индекс массива
    For j = 1 To x 'количество троек данных
        For i = 0 To 2 'строка из трех данных
            Cells(j, Nstolb + i) = Dan(y) 'вставка из массива
            y = y + 1 'инкремент индекса массива
            If y > A Then Exit Sub 'если все - выходим раньше
        Next i
    Next j
End Sub
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 22.12.2007 в 14:12.
SAS888 вне форума
Старый 23.12.2007, 11:29   #14
Natusya
 
Регистрация: 20.11.2007
Сообщений: 8
По умолчанию

Огромное спасибо! С комментариями всё гораздо понятнее. Правда, мне надо было строки не из 3, а из 5 значений, но с этим-то уж я разобралась. Ещё раз благодарю за отзывчивость!
Natusya вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
разбить строку Ceprey Общие вопросы C/C++ 10 24.12.2009 20:47
Как подставить строку в код? Voyager-69 Общие вопросы Delphi 4 09.05.2008 00:08
Считать строку XATAB Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 10.04.2008 21:18
Проблема со столбцом подстановок. Hellell Microsoft Office Access 1 08.01.2008 02:13
как сделать в memo строку не 256 символов, а 1024 например. Alar Компоненты Delphi 0 29.10.2006 18:46