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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.07.2009, 13:19   #1
Tirendus
Форумчанин
 
Аватар для Tirendus
 
Регистрация: 20.03.2009
Сообщений: 272
По умолчанию VBA вставка в одну ячейку из нескольких

Всем привет!
Пытаюсь создать макрос, который бы копировал значения из столбца и вставлял их в одну ячейку, но получается так, что макрос ставит в конечную ячейку значение последней используемой из другого листа... то есть, мне нужно 10 значений через знак "|", а вставляется только последнее.

вот код, если надо, могу выложить и лист с которым работаю

Код:
Dim b As Boolean, i, j, dev As Integer, jarjad As String, ra As Range
Sub MtelNet()
i = 2
j = 1
dev = 2
Worksheets("Лист1").Activate
Do
    Do
    b = False
    b = Cells(i, 4) = Cells(i + 1, 4)
    i = i + 1
    jarjad = Cells(i - 1, 4)
    Loop Until b = False
        Worksheets("Лист2").Cells(26, j).FormulaR1C1 = jarjad & ".jad"
        Worksheets("Лист2").Cells(28, j).FormulaR1C1 = jarjad & ".jar"
    Do Until dev = i
        Worksheets("Лист2").Cells(30, j) = Worksheets("Лист1").Cells(dev, 1) & _
 "-" & Worksheets("Лист1").Cells(dev, 2) & "|"  ' вот основная часть кода, которая меня интересует
        dev = dev + 1
    Loop
    j = j + 1
Loop Until Cells(i + 1, 4).Value = ""

End Sub
если я очень криво написал, то попробую пояснить - всё, что нужно - копировать из нескольких ячеек значение в одну, без замены, циклом

Последний раз редактировалось Tirendus; 08.07.2009 в 14:02.
Tirendus вне форума Ответить с цитированием
Старый 08.07.2009, 14:04   #2
mc-black
Пользователь
 
Аватар для mc-black
 
Регистрация: 03.06.2009
Сообщений: 26
По умолчанию

1. Переменные i и j у вас объявлены как Variant. Поскольку это счетчики для адресации ячеек, рекомендую явно указать As Long
2. Из двух строк
Код:
b = False
b = Cells(i, 4) = Cells(i + 1, 4)
первая не имеет смысла, т.к. следом идет вторая..
3. Основное, то что ты хотел исправить должно выглядеть примерно так:
Код:
Worksheets("Лист2").Cells(30, j) = Worksheets("Лист2").Cells(30, j) _
    & Worksheets("Лист1").Cells(dev, 1) & "-" & Worksheets("Лист1").Cells(dev, 2) & "|"
mc-black вне форума Ответить с цитированием
Старый 08.07.2009, 14:18   #3
Tirendus
Форумчанин
 
Аватар для Tirendus
 
Регистрация: 20.03.2009
Сообщений: 272
По умолчанию

большое спасибо прям под носом было, как я сам не догадался!
Tirendus вне форума Ответить с цитированием
Старый 09.07.2009, 19:57   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Проверяй:



Только не проси прокомментировать код.
Я сам не понимаю, как он работает
EducatedFool вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
текст из нескольких ячеек в одну Tirendus Microsoft Office Excel 10 20.01.2016 16:45
Перегнать данные из столбца в одну ячейку KROZORS Microsoft Office Access 2 17.06.2009 17:58
Ввод текста и ссылки в одну ячейку Апчхи Microsoft Office Excel 5 03.02.2009 10:44
Вставка в одну ячейку ivkoa Microsoft Office Excel 9 22.08.2008 14:16
Сведение нескольких таблиц в одну Sega Microsoft Office Excel 3 05.08.2008 15:21