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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2009, 16:19   #1
izhrvd
 
Регистрация: 01.06.2009
Сообщений: 6
Восклицание

Есть телефонная база, надо заменить первую 8-ку на цифру 7. Не могу сам сделать макрос.

Дело в том , что баз несколько. Поэтому проще макрос подсказать(если конечно есть). Функциями не получается, т.к. надо потом делать импорт в другую прогу.

к примеру вот(в файле)

Последний раз редактировалось izhrvd; 02.06.2009 в 09:17.
izhrvd вне форума Ответить с цитированием
Старый 01.06.2009, 17:01   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Вот весь код:
Код:
Sub Replace8()
    On Error Resume Next
    Dim cell As Range: Application.ScreenUpdating = False
    For Each cell In Intersect(ActiveSheet.UsedRange, Selection)
        If Left(cell, 1) = "8" Then cell = "7" & Mid(cell, 2)
    Next cell
End Sub

Private Sub Workbook_Open()
    Application.OnKey "^r", "Replace8"
End Sub
Запустите прикреплённый к сообщению файл (или подключите его как надстройку)

Потом в любом из своих файлов выделите диапазон с номерами (можно выделять столбцы целиком), и нажмите Ctrl + R
Вложения
Тип файла: rar макрос.rar (6.7 Кб, 27 просмотров)
EducatedFool вне форума Ответить с цитированием
Старый 01.06.2009, 17:29   #3
izhrvd
 
Регистрация: 01.06.2009
Сообщений: 6
По умолчанию

Огромное спасибо, все работает!
izhrvd вне форума Ответить с цитированием
Старый 27.10.2009, 16:25   #4
izhrvd
 
Регистрация: 01.06.2009
Сообщений: 6
По умолчанию

Добрый день. Опять появилась трудно решаемая для меня задача.
Необходим макрос: имеем два столбца с номерами телефонов. Нужно сравнить их так что бы из второго столбца удолились те номера которые присутствуют в первом.
Буду очень признателен.
izhrvd вне форума Ответить с цитированием
Старый 27.10.2009, 16:28   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
Необходим макрос
Необходим файл

Цитата:
что бы из второго столбца удолились те номера которые присутствуют в первом.
На месте удалённых номеров оставлять пустые ячейки, или удалять номера вместе с ячейками?


Чем не устраивают формулы?
В соседний столбец пишем формулу
Код:
  Ячейка: C1      Формула  (стиль A1):   =ЕСЛИ(СЧЁТЕСЛИ(A:A;B1)=0;"";B1)
                  Формула  (стиль R1C1): =ЕСЛИ(СЧЁТЕСЛИ(C[-2];RC[-1])=0;"";RC[-1])
и растягиваем её на нужное количество строк.

Последний раз редактировалось EducatedFool; 27.10.2009 в 16:47.
EducatedFool вне форума Ответить с цитированием
Старый 27.10.2009, 16:43   #6
izhrvd
 
Регистрация: 01.06.2009
Сообщений: 6
По умолчанию

Так пойдет.
Вложения
Тип файла: rar пример.rar (4.6 Кб, 10 просмотров)
izhrvd вне форума Ответить с цитированием
Старый 27.10.2009, 16:50   #7
izhrvd
 
Регистрация: 01.06.2009
Сообщений: 6
По умолчанию

удалять номера вместе с ячейками
1 или 2 формула?
izhrvd вне форума Ответить с цитированием
Старый 27.10.2009, 16:53   #8
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Вот макрос:
Код:
Sub test()
    Dim cell As Range, ra As Range: Application.ScreenUpdating = False
    For Each cell In Range([b1], Range("b" & Rows.Count).End(xlUp)).Cells
        If WorksheetFunction.CountIf([a:a], cell) Then
            If ra Is Nothing Then Set ra = cell Else Set ra = Union(ra, cell)
        End If
    Next cell
    On Error Resume Next: ra.Delete
    [b:b].SpecialCells(xlCellTypeBlanks).Delete
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 27.10.2009, 17:24   #9
izhrvd
 
Регистрация: 01.06.2009
Сообщений: 6
По умолчанию

Огромное спасибо!!!!!!!!!!!!!!
Все отлично работает!!!!!!!!!
izhrvd вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование VK в символ Minimus Win Api 10 02.06.2009 01:37
заменить символ в строке felmor Паскаль, Turbo Pascal, PascalABC.NET 1 25.12.2008 18:38
Символ с ошибкой KLOP Общие вопросы Delphi 2 19.12.2008 09:20
Помогите заменить байты в файле Dax Общие вопросы Delphi 3 21.06.2007 10:24
Помогите пожалуйста найти и заменить слово в TStringList Aleno4ka Помощь студентам 3 24.02.2007 14:45