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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2010, 09:41   #1
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию Отследить правельность выполнения names.add

Создаю переменную из ВБА командой:
Код:
names.add Имя, Значение
Как грамотно отследить ситуацию когда "Имя" имеет такое значение при котором создание такой переменной невозможно? Ну и вывести сообщение об этом.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 28.03.2010, 13:26   #2
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

а что значит "невозможно" приведите пример)
Dophin вне форума Ответить с цитированием
Старый 28.03.2010, 14:40   #3
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Создаете функцию, в которой прописываете проверку наличия в переменной запрещенных к использованию символов и при необходимости обращаетесь к ней. Например:
Код:
Sub Name_Add()
names.add CheckName(Имя), Значение
End Sub

Function CheckName(sName As String)
        Dim sSymbols, li As Long
        sSymbols = Array(" ", ",", ";", ":")
        For li = LBound(sSymbols) To UBound(sSymbols)
            sName = Replace(sName, sSymbols(li), "")
        Next li
        CheckName = sName
End Function
В данном случае все запрещенные символы будут удалены из переменной. Для выдачи сообщения можно сделать так:
Код:
Sub Name_Add()
If CheckName(Имя) <> Имя then msgbox "Имя содержит запрешенные символы и не может быть использовано":Exit Sub
names.add CheckName(Имя), Значение
End Sub
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru

Последний раз редактировалось The_Prist; 28.03.2010 в 18:10.
The_Prist вне форума Ответить с цитированием
Старый 28.03.2010, 15:13   #4
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от The_Prist Посмотреть сообщение
В данном случае все запрещенные символы будут удалены из переменной. Для выдачи сообщения можно сделать так:
Код:
Sub Name_Add()
If CheckName(Имя) <> Имя then msgbox "Имя содержит запрешенные символы и не может быть использовано":Exit Sub
names.add CheckName(Имя), Значение
End Sub
А если зайт с другой строны и отслеживать возниковновение ошибки? В данном случае будет вполне достаточно про вывести окно с ссобщение, что мол такую переменную создать нельзя и продолжаем работать.
Я пробовал использовать такой код:
Код:
On Error Resume Next: Err.Clear
Names.Add Имя, Значение
If Err Then MsgBox "Неудается создать переменную "& Имя, vbCritical:Exit Sub
Но он срабатывает и в случае если переменная с таким именем уже есть и ей просто переприсвоили значение.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод Add у TStringList FaTaL Общие вопросы Delphi 7 21.09.2014 09:59
Сложение(Add) Rymbil Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 22.01.2010 10:24
SQL.add Grom48 БД в Delphi 2 13.12.2009 16:42
add project lalilulelo Помощь студентам 3 26.05.2009 10:18
Как отследить завершение выполнения потока TThread? Трик Общие вопросы Delphi 3 24.10.2007 14:55