Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Excel - изменение ячейки, в диапазоне ячеек нужно удалить часть её 
:(
    Опции темы
FireAlex
Дата 27.1.2005, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 17.11.2004

Репутация: нет
Всего: нет



следующая проблема .
есть лист Excel. в одном столбце несколько тысыч записей формата ФИО, Адрес.
нужно в этом столбце удалить Адрес, оставив фамилию. грубо говоря искать в ячейке запятую и удалить всё содержимое после неё. писать прогу на дельфях нет времени может кто подскажет как быстрее с помощью VBA
PM MAIL   Вверх
Akina
Дата 27.1.2005, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Код

A2=Iif( Instr(A1,",")>0; Left(A1,Instr(A1,",")-1); A1)



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Naghual
Дата 27.1.2005, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



Вот примерно так
Код
Public Sub RemoveAddress(SH As Worksheet, Column As Integer)
   Dim r As Integer
   Dim StrValue As String
   Dim ComaPos As Integer
   
   For r = 1 To SH.UsedRange.Rows.Count
       StrValue = CStr(SH.UsedRange.Cells(r, Column).Value)
       ComaPos = InStr(1, StrValue, ",")
       If ComaPos > 0 Then
           SH.UsedRange.Cells(r, Column).Value = Mid$(StrValue, 1, ComaPos - 1)
       End If
   Next r
End Sub


ЗЫ: Ну и шустрый же ты, Akina. smile

Это сообщение отредактировал(а) Naghual - 27.1.2005, 15:39


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Staruha
Дата 27.1.2005, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 2
Всего: 27



Код

Private Sub CommandButton1_Click()
Dim d As Integer

Dim str As String
Dim str1 As String
Dim strLen
Dim i As Integer

d = UsedRange.Rows.Count

For rwIndex = 1 To d
str = Range("A" & rwIndex)
strLen = Len(str)
   For i = 1 To strLen
   str1 = Mid(str, i, 1)
     If Asc(str1) <> 44 Then
      Range("B" & rwIndex).Value = Left(str, i)
     Else
   Exit For
End If
Next i
Next rwIndex

End Sub


Это сообщение отредактировал(а) Старуха - 27.1.2005, 22:39


--------------------
Возмездие настигнет
PM MAIL   Вверх
FireAlex
Дата 28.1.2005, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 17.11.2004

Репутация: нет
Всего: нет



сделал макрос в екселе, вставил туда код но рукается на строчку Sh = Worksheets(1)
"Object variable or With block variable not set"
код следующий:

Sub Макрос1[s]()
Dim Sh As Worksheet
Dim r As Integer
Dim StrValue As String
Dim ComaPos, Column As Integer

Column = 4 ' номер столбца

Sh = Worksheets(1)

For r = 1 To Sh.UsedRange.Rows.Count
StrValue = CStr(Sh.UsedRange.Cells(r, Column).Value)
ComaPos = InStr(1, StrValue, ",")
If ComaPos > 0 Then
Sh.UsedRange.Cells(r, Column).Value = Mid$(StrValue, 1, ComaPos - 1)
End If
Next r
End Sub


в VB не силен, но по моему всё правильно. видать что то упустил


PM MAIL   Вверх
~FoX~
Дата 28.1.2005, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 10
Всего: 68



Код

Set Sh = Worksheets(1)



--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Staruha
Дата 28.1.2005, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 2
Всего: 27



Не надо делать макрос,если действительно на VBA.Рисуй на листе кнопку и вставляй туда мой код.Все работает.


--------------------
Возмездие настигнет
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0497 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.