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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2012, 17:59   #1
DAN1L
Пользователь
 
Регистрация: 10.02.2012
Сообщений: 52
По умолчанию работа с выделенным диапазоном

Здравствуйте, мне необходимо из введенных в одном столбце но в разных строках ФИО (т.е. в каждой ячейке введено целиком ФИО через пробел) вынести только фамилии в другой столбец, но работая только с выделенными ячейками.

Вот мой код, но он работает со всеми строками в столбце "А", как сделать что бы работал только с выделенными?
Код:
Sub prog4()
Dim string1 As String, i As Integer
i = 2

Do
string1 = Cells(i, 1)
string2 = " "
m = InStr(1, string1, string2)
Sheets("Лист7").Cells(i, 6) = Mid(Sheets("Лист7").Cells(i, 1), 1, m)
  
i = i + 1

Loop
End Sub
DAN1L вне форума Ответить с цитированием
Старый 28.11.2012, 19:28   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

не совсем понятно, что Вы имеете в виду под "работал только с выделенными" ..
Ну, допустим, Выделили Вы в столбце D две ячейки, вызвали макрос Prog4() на исполнение, что должно произойти?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.11.2012, 19:32   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Не проверял,но должно работать
Код:
Sub prog4()
    Dim string1 As String,string2 As String, cel As Range
    For Each cel In Selection
        string1 = cel.Text
        string2 = " "
        m = InStr(1, string1, string2)
        cel.Offset(0, 5) = Mid(string1, 1, m)
    Next
End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 28.11.2012, 19:44   #4
DAN1L
Пользователь
 
Регистрация: 10.02.2012
Сообщений: 52
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
не совсем понятно, что Вы имеете в виду под "работал только с выделенными" ..
Ну, допустим, Выделили Вы в столбце D две ячейки, вызвали макрос Prog4() на исполнение, что должно произойти?

в указанных ячейках должны быть написаны только фамилии из этого диапазона
DAN1L вне форума Ответить с цитированием
Старый 28.11.2012, 19:49   #5
DAN1L
Пользователь
 
Регистрация: 10.02.2012
Сообщений: 52
По умолчанию

Большое спасибо! Все работает!
DAN1L вне форума Ответить с цитированием
Старый 29.11.2012, 03:54   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно проще:
Код:
Sub prog4()
    For Each cel In Selection: cel.Offset(, 5) = Split(cel)(0): Next
End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с выделенным текстом Mrsqler Общие вопросы Delphi 22 12.05.2012 02:27
Добавление подузлов в TreeView к выделенным узлам ProgDel Помощь студентам 1 06.11.2010 17:16
работа с диапазоном ячеек? panzergto Microsoft Office Excel 4 01.04.2010 21:25
Работа с именным диапазоном tae1980 Microsoft Office Excel 32 21.08.2009 11:10
работа с выделенным диапазоном nastya007 Microsoft Office Excel 5 13.03.2009 08:33