Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Удаление пробелов в ячейках по правилу / 11 сообщений из 11, страница 1 из 1
11.09.2007, 09:50:01
    #34790055
B.T.C.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление пробелов в ячейках по правилу
В ячейках содержатся полные названия населенных пунктов.
Нужно, чтобы при копировании в другое приложение, части адреса в ячейке визуально были бы неразрывным (т.е. исключались некрасивые переносы на другую строку)
Для этого вручную удаляются все пробелы после слов типа "г. ", "адм. ", "п. ", "ул. ", "д. ", "к. ", "стр. ", "ст. ", "с. " и т. п.
Помогите это автоматизировать пожалуйста!
...
Рейтинг: 0 / 0
11.09.2007, 10:42:36
    #34790292
udgeen69
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление пробелов в ячейках по правилу
Написал функцию, удаляет все пробелы после слов из списка
...
Рейтинг: 0 / 0
11.09.2007, 11:08:53
    #34790426
B.T.C.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление пробелов в ячейках по правилу
Здорово!
А можно список "list of words" в сам макрос поместить?
...
Рейтинг: 0 / 0
11.09.2007, 11:12:48
    #34790447
udgeen69
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление пробелов в ячейках по правилу
B.T.C.Здорово!
А можно список "list of words" в сам макрос поместить?
ну да, можно. Перечислить его где-нить в макросе, как массив например.
...
Рейтинг: 0 / 0
11.09.2007, 11:34:49
    #34790553
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление пробелов в ячейках по правилу
Еще такие варианты:

1) Без макросов:

=ПОДСТАВИТЬ(СЖПРОБЕЛЫ(B2);". ";".")

2) RegExp
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Function TRIM_STRING(strTxt As String, strPattern As String, strReplace As String)
    Dim RegExp As Object
    Set RegExp = CreateObject("vbscript.regexp")
    With RegExp
        .Pattern = strPattern
        .Global = True
        TRIM_STRING = .Replace(Application.Trim(strTxt), strReplace)
    End With
End Function

=TRIM_STRING(A1,"\. ";".")


KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
11.09.2007, 14:32:28
    #34791340
B.T.C.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление пробелов в ячейках по правилу
И последняя заморочка - как автоматически заменять неправильные части адреса "МО ..." , на правильные "Моск. обл. ..."
...
Рейтинг: 0 / 0
11.09.2007, 22:18:54
    #34792829
B.T.C.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление пробелов в ячейках по правилу
Если кто по последнему вопросу знает, подскажите, плз!
...
Рейтинг: 0 / 0
12.09.2007, 09:40:12
    #34793198
Rampage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление пробелов в ячейках по правилу
B.T.C.Если кто по последнему вопросу знает, подскажите, плз!
cntrl + F
закладка Replace
find what МО
Replace with Моск. обл.
...
Рейтинг: 0 / 0
12.09.2007, 09:49:20
    #34793225
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление пробелов в ячейках по правилу
Rampage
cntrl + F
закладка Replace

cntrl + H
...
Рейтинг: 0 / 0
12.09.2007, 10:57:55
    #34793452
B.T.C.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление пробелов в ячейках по правилу
Разобрался, почему у меня так же просто, как описано выше не получалось!
Оказывается, перед операцией замены, обязательно должна быть выделена ячейка в этом диапазоне!
А я курсор в чистом поле ставил...)
...
Рейтинг: 0 / 0
17.10.2007, 23:13:06
    #34876623
B.T.C.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление пробелов в ячейках по правилу
Что-то не удалось отредактировать преложенный код функции, со списком внутри
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
Public Function Trim_string(Rang_of_words_4_trim As Range, _
                            Rang_2_trim As Range) As String
    
    Dim str_tmp, str1 As String
    Dim i, pos As Integer
    Dim irange As Range
    Dim Rang_of_words_4_trim As Variant ' диапазон имён
    
    Rang_of_words_4_trim = Array("г. ", "адм. ", "п. ", "ул. ", "д. ", "к. ", "стр. ", "ст. ", "с. ")
    
    str1 = Rang_2_trim.Value
    
    For Each irange In Rang_of_words_4_trim
    
        If InStr( 1 , str1, irange) Then
next_iteration:
            If str_tmp <> "" Then str1 = str_tmp
            
                str15 = Mid(str1, InStr( 1 , str1, irange) + _
                        Len(irange),  1 )
                
                 If Mid(str1, InStr( 1 , str1, irange) + _
                        Len(irange),  1 ) = " " Then
                    'irange = irange
                    
                    pos = InStr( 1 , str1, irange) + Len(irange)
                    
                    str_tmp = Mid(str1,  1 , pos -  1 ) + _
                        Mid(str1, pos +  1 , Len(str1))
                    
                 GoTo next_iteration
                 
            End If
        'irange = irange
        End If
    
    Next
    
    Trim_string = str1

End Function

Возникает ошибка !ЗНАЧ
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Удаление пробелов в ячейках по правилу / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]