powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как удалить пробелы внутри слова в ячейке
6 сообщений из 31, страница 2 из 2
Как удалить пробелы внутри слова в ячейке
    #33367780
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмит White OwlХотя прикола ради, а вообще regexp'ы в Excel засунуть можно? Разве что внешнюю программу (или dll какую-нибудь писать).
Для подключения regexp, как обычно Tools->References выбери Microsoft VBScript Regular Expressions X.X и юзай на здоровье :)
Ишь ты! Действительно работает. Век живи, век учись... впрочем оно мне ни разу и не нужно было :)
...
Рейтинг: 0 / 0
Как удалить пробелы внутри слова в ячейке
    #33369755
Дмит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Воспользовался своим советом:
Уменя была Транслит функция на чисто VBA.
Сделал аналог на RegExp.
Тестирую 5 колонн* 7550 строк, старая 41с - новая 13с.
Если делать замену в 50'000 строк, есть резон использовать RegExp.
Я использую Транслит для чтения писем, так что мне и старой скорости достаточно.
...
Рейтинг: 0 / 0
Как удалить пробелы внутри слова в ячейке
    #33369887
Дмит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX--ALEXпри этом перекодировать из 8-битной базы в 16-битный EXCEL Может быть из базы в текстовый файл, а уже его открыть Excel. При открытии текстовых он спрашивает в какой кодировке и открывает как надо.
...
Рейтинг: 0 / 0
Как удалить пробелы внутри слова в ячейке
    #33369891
ДмитВоспользовался своим советом:
Уменя была Транслит функция на чисто VBA.
Сделал аналог на RegExp.
Тестирую 5 колонн* 7550 строк, старая 41с - новая 13с.
Если делать замену в 50'000 строк, есть резон использовать RegExp.
Я использую Транслит для чтения писем, так что мне и старой скорости достаточно.

аж интересно стало - накидал "побыстрому" траслит кирилица->латиница.
"чистый" VBA без выкрутасов.

простой цикл 1-37750 - 2.5 сек, заменяемая строка - 18 символов

замена в Эксель - 10000 строк, 20 столбцов, случайно-генерированный кирилический текст длиной 10 символов в каждой ячейке без пробелов и символов, не подлежащих транслитерации.

Итог - 8.5 сек.

комп - Целерон 1700

'-----------------------
Дмит, не затруднит ли показать вариант для Regexp?
...
Рейтинг: 0 / 0
Как удалить пробелы внутри слова в ячейке
    #33370023
Дмит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Главная часть кода:
Код: 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.
Dim  sm As String
Dim RG As Range
Dim ReEx As New RegExp
Dim i As Long, j As Long, Max As Long, Max2 As Long, k As Long
Dim Xvar As Variant

    If TypeName(Selection) = "Range" Then
        Set RG = Selection
        Xvar = RG
        With ReEx
            .Global = True
            .IgnoreCase = True
            Max = UBound(Xvar,  1 )
            Max2 = UBound(Xvar,  2 )
            For k =  1  To  33 
                .Pattern = Cells(k,  15 )'русская буква
                sm = Cells(k,  16 )'латиница
                For i =  1  To Max
                    For j =  1  To Max2
                        Xvar(i, j) = .Replace(Xvar(i, j), sm)
                    Next
                Next
            Next
        End With
        RG = Xvar
        
    Else: MsgBox "Выделите ячейки для транслитерации.", vbOKOnly, "Книжная полка"
    End If
...
Рейтинг: 0 / 0
Как удалить пробелы внутри слова в ячейке
    #33370105
че-то ничего из этого кода у меня умного не получилось.
может где не понял, но по приложенным тестам эти конкретные выражания в 20 раз медленнее, чем "простой вба".

так что я пока, по глупости, воздержусь "рекомендовать выражения"
хотя, может, выражения как - нибудь иначе сказать можно?

:)
...
Рейтинг: 0 / 0
6 сообщений из 31, страница 2 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как удалить пробелы внутри слова в ячейке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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