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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 10.01.2008, 19:14   #1
global
Новичок
Джуниор
 
Регистрация: 10.01.2008
Сообщений: 1
По умолчанию с помощью макроса скопировать значение всей строки(не одной ячейки, а нескольких)

Здраствуйте!

Скажите как мне с помощью макроса скопировать значение всей строки(не одной ячейки, а нескольких), а потом обработать эту строку по символьно средствами VBA в Excel.
global вне форума
Старый 11.01.2008, 05:21   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Получить строковую переменную, содержащую объединение всех ячеек заданной строки можно, например, с помощью макроса:
Код:
Sub Integr()

    Dim Stroka As Long, MyString As String, i As Integer
    Stroka = 1 'Номер строки для объединения ячеек
    
'Объединяем непустые ячейки строки "Stroka"
'от первого столбца до последнего заполненного

    For i = 1 To Cells(Stroka, "IV").End(xlToLeft).Column
        If Not IsEmpty(Cells(Stroka, i)) Then MyString = MyString & " " & Cells(Stroka, i)
    Next i
    
'Результат - строковая переменная "MyString"

    MsgBox MyString

End Sub
Здесь между значениями каждой ячейки строки вставляется символ пробела (так, наверное, будет удобнее работать дальше).
Далее работать с переменной "MyString". Что конкретно значит "обработать по-символьно", Вы не оговорили.
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 11.01.2008 в 05:23. Причина: Добавлено
SAS888 вне форума
Старый 11.01.2008, 19:16   #3
Leanna
Пользователь
 
Регистрация: 31.10.2007
Сообщений: 24
По умолчанию

Код:
    For i = 1 To Cells(Stroka, "IV").End(xlToLeft).Column
Что означет римская пять в кавычках? ("IV")
Leanna вне форума
Старый 11.01.2008, 20:05   #4
Pavel55
Форумчанин
 
Регистрация: 21.08.2007
Сообщений: 292
По умолчанию

это так называется ваш последний столбец в вашем Excel (если у вас не Excel 2007)
Откройте любой лист Excel и посмотрите на название столбцов. Они у вас должны идти так
либо
1,2,3....256
либо так
A,B,C....IV
нажмите Ctrl+стрелочка вправо на листе
Pavel55 вне форума
Старый 27.11.2008, 15:46   #5
Acro
Пользователь
 
Регистрация: 21.10.2008
Сообщений: 39
По умолчанию

А не подскажите, как значения несвязанных ячеек можно скопировать в одну. Кручу, но никак не могу грамотно обьединить, чтобы потом

Цитата:
Range("C1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Может как то по другому можно вставлять?
Acro вне форума
Старый 27.11.2008, 16:38   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Sub test()
    ' этот макрос соединит содержимое ячеек диапазона [c4:c11] через соединитель delimiter
    ' и запишет результат в ячейку [c1]
    
    Set ra = [c4:c11]: res = "": delimiter = ", "    ' delimiter - разделитель
    ' соединяем значения ячеек исходного диапазона в переменную res
    For Each cell In ra.Cells: res = res & cell & delimiter: Next: res = Left(res, Len(res) - Len(delimiter))
    [c1] = res
End Sub
EducatedFool вне форума
Старый 27.11.2008, 17:43   #7
Acro
Пользователь
 
Регистрация: 21.10.2008
Сообщений: 39
По умолчанию

Гениально, к тому же сократил кучу кода. Спасибо
Acro вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставить значение ячейки в формулу jungo Microsoft Office Excel 2 12.08.2008 15:32
Скопировать по одной ячейке из нескольких файлов в один Nimo Microsoft Office Excel 2 09.08.2008 09:25
как скопировать часть объединенной ячейки? Азамат Microsoft Office Excel 20 14.07.2008 22:50
Выполнения макроса(с подстановкой имени) при условии ячейки... MaxZoa Microsoft Office Excel 7 22.04.2008 11:08
Как разделить число и текст в одной ячейки на две ячейки. neboskreb Microsoft Office Excel 2 15.04.2008 19:39