powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ошибка объявленной переменной
29 сообщений из 29, показаны все 2 страниц
Ошибка объявленной переменной
    #38785589
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Переменная объявлена, ей присвоено значение. Но удаление значения происходит с ошибкой. Почему?
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38785603
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Назовите переменную другим именем.
Вполне вероятно, что имя Name уже существует в контексте текущего объекта как имя свойства или метода.
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38785632
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, ну и да, не сразу обратил внимание: у вас
Код: vbnet
1.
Dim name As String


Что же вы символьной переменной пытаетесь присвоить объектную?
И ещё - необязательно делать освобождение переменных, локальных в контексте данной процедуры - интерпретатор их освобождает автоматически.
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38785634
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Name - зарезервированное слово...

http://msdn.microsoft.com/en-us/library/aa266171(v=vs.60).aspx
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38785642
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTMНазовите переменную другим именем.
Вполне вероятно, что имя Name уже существует в контексте текущего объекта как имя свойства или метода. изменил Name на NameF - то же самое, ругается на Nothing. NameF mjkmit не встречается в проекте
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38785646
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTMИ ещё - необязательно делать освобождение переменных, локальных в контексте данной процедуры - интерпретатор их освобождает автоматически. то есть не надо очищать?
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38785663
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
надо так
Код: vbnet
1.
Name=""
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38785668
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, не надо очищать при выходе.

Если беспокоитесь за память - то принудительно очищать можно только объектные переменные. Или динамические массивы (используя erase). И то, опять же, имеет смысл, если это всё определено глобально...
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38785679
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTMЕсли беспокоитесь за память - то принудительно очищать можно только объектные переменные. Или динамические массивы (используя erase). И то, опять же, имеет смысл, если это всё определено глобально...понятно, спасибо. Не за память, а например за случай когда из-за ошибки выполнение кода прерывается на половине, переменной присвоено значение, потом опять выполнение возобновляется, а нужно новое значение для переменной, а присвоение (в моём случае) имени файла будет по старому значению.
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38785711
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
interskслучай когда из-за ошибки выполнение кода прерывается на половине, переменной присвоено значение, потом опять выполнение возобновляется, а нужно новое значение для переменнойЭто дело обработчика ошибок, а не основного кода - ведь ситуация нештатная. Изучите заодно использование On Error .
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38785717
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а какие есть объектные переменные? если правильно понимаю это например: программы Word, листы Excel...
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38785843
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
interskа какие есть объектные переменные? если правильно понимаю это например: программы Word, листы Excel...например да, но, в принципе, это любой класс, то есть все кроме типов значений (String, Double, Integer и т.п.)
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38785857
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если чуть проще, то объект это все, значение чему назначается через оператор Set. Их и надо потом "вычищать", если есть желание. Для объектных переменных внутри цикла(For each wsSh in Worksheets) очистка не имеет смысла, т.к. по завершении цикла они все равно очищаются.
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38787034
1001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
interskа какие есть объектные переменные? если правильно понимаю это например: программы Word, листы Excel...мля

чоб
с 'чего-нибудь'
не начать




многа чо - ..время жизни ...где и как ...

и тд
))

заодно
глянуть Запретные Слова....
....
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38787568
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_PristЕсли чуть проще, то объект это все, значение чему назначается через оператор Set. а каким данным нужно обязательно присваивать значение через Set ? а не просто через знак =
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38787616
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а каким данным нужно обязательно присваивать значение через Set
Опять по кругу?
Ответ №2
Что же вы символьной переменной пытаетесь присвоить объектную?
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38787706
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex77755, всем объектамным переменным всегда обязательно присваивать значение через Set?
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38787717
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
interskобъектамным переменным всегда обязательно присваивать...А вы просто попробуйте присвоить НЕ через set
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38787725
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторвсем объектамным переменным всегда обязательно присваивать значение через Set?
да
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38787728
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex77755, понял )
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38787729
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM, не буду ) всё ясно
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38787730
intersk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
interskAndreTM, не буду ) всё ясно наверно просто не получиться присвоить значение, точнее присвоятся просто "буквы"
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38787745
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
interskinterskAndreTM, не буду ) всё ясно наверно просто не получиться присвоить значение, точнее присвоятся просто "буквы"Без Set присвоится значение того свойства, которое у объекта по умолчанию (Text для текстбокса, Value для поля и т.п.)
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38787816
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Prointerskпропущено...
наверно просто не получиться присвоить значение, точнее присвоятся просто "буквы"Без Set присвоится значение того свойства, которое у объекта по умолчанию (Text для текстбокса, Value для поля и т.п.)Как раз из-за наличия свойств по умолчанию было придумано Set.
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38787817
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyShocker.Proпропущено...
Без Set присвоится значение того свойства, которое у объекта по умолчанию (Text для текстбокса, Value для поля и т.п.)Как раз из-за наличия свойств по умолчанию было придумано Set.для поддержки
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38788331
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyбыло придумано SetНе, не так...

На самом деле, простое "присваивание" в бейсике имеет слово-префикс, это слово Let . Просто большинство диалектов языка допускает возможность отсутствия Let при присваивания значения переменной (а не объекту). Ну и слово Set , на самом деле, занимается не "перезаписью" одного объекта в другой, а записывает указатель на объект...
А свойства по умолчанию у объекта может и не быть. Вернее, оно может быть не назначено - что во всей красе видит юзер, когда начинает работать с классами. Вот именно там в VBA существуют все три процедуры: Property Let, Get и Set.
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38788391
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMНе, не так...Не спорь, это слова одного из разработчиков VB. Правда я их не договорил, поясню на примере.

Без Set компилятор не знает, что делать в такой ситуации:
Код: vbnet
1.
2.
Dim x As Variant
x = y.SomeProp(z)

Допустим, SomeProp(z) возвращает объект SomeObj, имеющий свойство по умолчанию. Вопрос: что вернуть в x, ссылку на SomeObj или значение свойства по умолчанию?

Set x = y.SomeProp(z) не оставляет сомнений.
На этот случай даже вроде ошибка есть: или используйте Set или укажите свойство.

В дотнете свойствами по умолчанию могут быть только свойства с параметрами, поэтому от Set избавились, y.SomeProp(z) всегда вернет SomeObj. А смысл свойства по умолчанию теперь такой: x = y(z)

AndreTMНу и слово Set, на самом деле, занимается не "перезаписью" одного объекта в другой, а записывает указатель на объект...А мужики-то не знали!

AndreTMА свойства по умолчанию у объекта может и не быть.Что характерно, в синтаксисе VB нет способа его объявить, однако это умеет делать Class Builder Utility. Если посмотреть на результат ее деятельности в блокноте, то можно увидеть такую строку:

Код: vbnet
1.
2.
Public Property Get test() As Variant
Attribute def.VB_UserMemId = 0
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38788400
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyБез Set компилятор не знает, что делать в такой ситуации:Хотя тут он все знает, наврал я.

Не помню правильную ситуацию.
...
Рейтинг: 0 / 0
Ошибка объявленной переменной
    #38788457
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyА мужики-то не знали!
Я сам пост никак не тебе адресовал...

AntonariyНе помню правильную ситуациюВроде как такая:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Function SomeFunc() As Variant
  ...
  Dim a As ...
  SomeFunc = a
  ...
  Dim o As Object
  Set SomeFunc = o
 ...
End Function

Dim x As Variant
x = SomeFunc()
...
Рейтинг: 0 / 0
29 сообщений из 29, показаны все 2 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ошибка объявленной переменной
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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