#0
by Adgjj
Допустимые символы в текстовых данных экселя: a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 / - ? : . , ' + Нужно найти другие символы или определить, что все символы являются допустимыми.
#1
by Ненавижу 1С
каждый символ данных ищешь в строке "a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 / - ? : . , ' + " (без пробелов только) если не находится, то это недопустимый символ
#6
by b_ru
Sub Check Symbols = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/-?:.,'+ " res = "" For Each cell In ActiveSheet.UsedRange For i = 1 To Len(cell.Text) s = Mid(cell.Text, i, 1) If InStr(1, Symbols, s) = 0 Then res = res & "R" & cell.Row & "C" & cell.Column & ": недопустимый символ " & s & vbCrLf Exit For End If Next i Next cell MsgBox res End Sub
#12
by b_ru
Тогда о формулах в принципе нужно забыть. Ну и в предложенном макросе вместо поиска в строке в условии If InStr(1, Symbols, s) = 0 Then использовать сравнение кодов символа
#13
by Lama12
Можно. Нужно один лист сделать только из формул и с помощью него проверять. ИМХО. Пусть лучше САП проверяет что символы правильные. Для Excel это не родная задачка, а SAP, как я понял из , является источником. Почему бы при выгрузке не проверить?
#14
by ShoGUN
Если важна скорость - проще записать данные из экселя в текст(csv), а текст можно хоть чем обрабатывать.
#15
by Лефмихалыч
а вот в опенофисе можно использовать регулярки для поиска и замены безо всяких там сцаных макросов... что значит "найти или определить"? Тебе нужно удалить все, что не считается допустимым или просто получить ответ на вопрос "есть или нет"?
#16
by Adgjj
Спасибо всем. Нужно сказать пользователю, для какой строки в каких столбцах есть недопустимые символы. опенофиса никогда не видела, к сожалению у нас MS Excel 2010 проверка в SAPе отпадает
#19
by Лефмихалыч
макрос нарисуй с использованием vbscript regexp. Регулярка такая: "[^A-z|0-9|/|-|?|:|(|)|.|,|'|+]"
#22
by Adgjj
Посмотрите, пжл, почему-то моя функция =rgx(B7) не работает. Public Function Rgx(astring As Range) As String Dim re As RegExpSet 're - понимает RegExp Dim tempString re.Pattern = "[^A-z|0-9|/|-|?|:|(|)|.|,|'|+]" 'Шаблон re.Global = True 'True - проверка всего текста, False - проверка до перовго соответствия re.IgnoreCase = True 'True - учитывать регистр, False - игнорировать регистра 're.MultiLine = True 'True - многострочный объект, False - однострочный объект tempString = re.Test(astring) 'возвращает False, если строка не соответствует шаблону If tempString = False Then RgxPhone = "Недопустимый символ!" End Function
#23
by Adgjj
Вернее, так Public Function Rgx(astring As Range) As String Dim re As RegExpSet 're - понимает RegExp Dim tempString re.Pattern = "[^A-z|0-9|/|-|?|:|(|)|.|,|'|+]" 'Шаблон re.Global = True 'True - проверка всего текста, False - проверка до перовго соответствия re.IgnoreCase = True 'True - учитывать регистр, False - игнорировать регистра 're.MultiLine = True 'True - многострочный объект, False - однострочный объект tempString = re.Test(astring) 'возвращает False, если строка не соответствует шаблону If tempString = False Then Rgx = "Недопустимый символ!" End Function
#24
by Adgjj
Шаблон: re.Pattern = "[A-z|0-9|Q-|?|:|(|)|.|,|'|+|sE]" Не находит символ "&" в строке "Pen&". В строке "&" находит.
Тэги: IT-новости
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- DDE, Excel, как передать значение ячейки Excel в 1С
- Excel и 1С - вопрос про Excel?
- Excel -> 1C ("Excel.Application")
- 1C и Excel: таблица Excel в Таблице 1С
- Программно скопировать область из Excel книги 1 в Excel книгу 2
- Убрать в строке все символы кроме цифр
- Можно ли отредактировать файл Excel из 1С без установленного Excel?
- Excel - ошибка при закрытия Excel
- Как узнать какая часть текста в excel зачеркнута?
- v7: Чтение excel файлов без установленого excel
- Подключение к excel при помощи ado. Как узнать имя листа по его номеру?
- выгрузка в Excel. При выгрузке лицевых счетов в Excel все знаки после 15-го= 0
В этой группе 1С
- 1С Бухгалтерия предприятия редакции 3.0
- не работает сервер приложений 81
- Сортировка элементов в СКД по иерархии, но без вывода иерархии
- Как включить синхронизацию данных в 1С: БП 3.0
- КД2. Как правильно заполнятьРС СоответствиеОбъектовДляОбмена (Бух 7.7 - БП3)
- Какую CRM использовать?
- 1с 8.3.5.1428. Конфигуратор не видит регистр сведений
- Восстановление базы MS SQL в тестовую базу с откатом транзакций на дату
- Посоветуйте XML редактор(правила обмена править)
- v7: Товарный отчёт не работает
- Отбор и сортировка в 1С 8.2
- УТ + БП, серверная на Ubuntu 14, не идет обмен данными, Help.
- Заполнение счета учета НДС
- 1c 8.3 УФ, есть какая-то процедура после открытия формы?
- 1С 2.5 ЗУП как принять сотрудников под разными ОКТМО
- УТ 11.1 Задание на проверку кладовщику
- Управляемая форма страницы в 2 ряда
- ЗУП: Страховые на доп.выходные по уходу за детьми-инвалидами.
- КД 2.0: Конвертация значения типа "Булево" в перечисление
- СКД: выбрать динамику дебиторской задолженности