Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Объявление глобальной переменной - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Объявление глобальной переменной (Макросы/Sub)
Объявление глобальной переменной
combat Дата: Воскресенье, 22.11.2015, 11:32 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
В исполняемом коде формы объявил глобальную переменную rrr

[vba]
Код
Option Explicit
'
Public rrr As Integer
Dim SRng As Range ', InRng As Range
Dim roww As Long
[/vba]

в этой форме должен получить значения
[vba]
Код
Private Sub OptionButton1_Change()
Frame1.Height = 150
If OptionButton1.Value = True Then
rrr = 21
...
End Sub

Private Sub OptionButton2_Change()
Frame1.Height = 150
If OptionButton2.Value = True Then
rrr = 25
...
End If
End Sub
[/vba]

а вот здесь появляется ошибка, код на листе, ггг показывает, что Empty [vba]
Код
Sheets("Save").Range("a" + LTrim$(Str$(z))) = Mid(Worksheets("РСИ").Cells(15, 1).Value, rrr, 999) ' наименование, тип, рег. №
[/vba]

[vba]
Код
Sub CommandButton2_Click()
ActiveSheet.PrintOut
Dim z As Variant
z = 1
While Sheets("Save").Range("a" + LTrim$(Str$(z))) <> ""
z = z + 1
Wend
Sheets("Save").Range("a" + LTrim$(Str$(z))) = Mid(Worksheets("РСИ").Cells(15, 1).Value, rrr, 999) ' наименование, тип, рег. №
Sheets("Save").Range("b" + LTrim$(Str$(z))) = Worksheets("РСИ").Cells(25, 14).Value ' зав. №
....
End Sub
[/vba]

кто подскажет, где ошибка почему rrr для кода листа "РСИ" не присваивается значение 21 или 25 в зависимости от условия в формы2


Сообщение отредактировал combat - Воскресенье, 22.11.2015, 11:36
 
Ответить
СообщениеВ исполняемом коде формы объявил глобальную переменную rrr

[vba]
Код
Option Explicit
'
Public rrr As Integer
Dim SRng As Range ', InRng As Range
Dim roww As Long
[/vba]

в этой форме должен получить значения
[vba]
Код
Private Sub OptionButton1_Change()
Frame1.Height = 150
If OptionButton1.Value = True Then
rrr = 21
...
End Sub

Private Sub OptionButton2_Change()
Frame1.Height = 150
If OptionButton2.Value = True Then
rrr = 25
...
End If
End Sub
[/vba]

а вот здесь появляется ошибка, код на листе, ггг показывает, что Empty [vba]
Код
Sheets("Save").Range("a" + LTrim$(Str$(z))) = Mid(Worksheets("РСИ").Cells(15, 1).Value, rrr, 999) ' наименование, тип, рег. №
[/vba]

[vba]
Код
Sub CommandButton2_Click()
ActiveSheet.PrintOut
Dim z As Variant
z = 1
While Sheets("Save").Range("a" + LTrim$(Str$(z))) <> ""
z = z + 1
Wend
Sheets("Save").Range("a" + LTrim$(Str$(z))) = Mid(Worksheets("РСИ").Cells(15, 1).Value, rrr, 999) ' наименование, тип, рег. №
Sheets("Save").Range("b" + LTrim$(Str$(z))) = Worksheets("РСИ").Cells(25, 14).Value ' зав. №
....
End Sub
[/vba]

кто подскажет, где ошибка почему rrr для кода листа "РСИ" не присваивается значение 21 или 25 в зависимости от условия в формы2

Автор - combat
Дата добавления - 22.11.2015 в 11:32
RAN Дата: Воскресенье, 22.11.2015, 11:42 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
почему rrr для кода листа "РСИ" не присваивается

Потому, что
В исполняемом коде формы объявил глобальную переменную rrr


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
почему rrr для кода листа "РСИ" не присваивается

Потому, что
В исполняемом коде формы объявил глобальную переменную rrr

Автор - RAN
Дата добавления - 22.11.2015 в 11:42
combat Дата: Воскресенье, 22.11.2015, 13:38 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Все равно не понял, все таки как решить проблему, что не так, не там объявил
 
Ответить
СообщениеВсе равно не понял, все таки как решить проблему, что не так, не там объявил

Автор - combat
Дата добавления - 22.11.2015 в 13:38
RAN Дата: Воскресенье, 22.11.2015, 13:41 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеЧто такое переменная и как правильно её объявить?

Автор - RAN
Дата добавления - 22.11.2015 в 13:41
combat Дата: Воскресенье, 22.11.2015, 14:19 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
То есть, я не там вставил [vba]
Код
Public rrr As Integer
[/vba]
нужно было вставить в ЭтаКнига?
предложенный ресурс почитал, на мысль об ошибке не на вел


Сообщение отредактировал combat - Воскресенье, 22.11.2015, 14:19
 
Ответить
СообщениеТо есть, я не там вставил [vba]
Код
Public rrr As Integer
[/vba]
нужно было вставить в ЭтаКнига?
предложенный ресурс почитал, на мысль об ошибке не на вел

Автор - combat
Дата добавления - 22.11.2015 в 14:19
Pelena Дата: Воскресенье, 22.11.2015, 14:43 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 19195
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
Цитата из статьи по ссылке
Цитата
Важно: объявлять подобным образом переменную необходимо строго в стандартном модуле


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЦитата из статьи по ссылке
Цитата
Важно: объявлять подобным образом переменную необходимо строго в стандартном модуле

Автор - Pelena
Дата добавления - 22.11.2015 в 14:43
RAN Дата: Воскресенье, 22.11.2015, 15:01 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Вот уж воистину - "Смотрю в книгу, вижу ..." :D
Там и ссылочка есть Что такое модуль? Какие бывают модули?


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеВот уж воистину - "Смотрю в книгу, вижу ..." :D
Там и ссылочка есть Что такое модуль? Какие бывают модули?

Автор - RAN
Дата добавления - 22.11.2015 в 15:01
combat Дата: Воскресенье, 22.11.2015, 15:26 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Так у меня один код в форме, а другой на листе, переменную я привязываю от формы, где должно присвоится к "rrr" либо значение 21 либо 25 для кода листа (РСИ),
модуль в общем проекте есть но он не использует эту переменную
или я вообще не в ту степь, как нужно? не понимаюююююю
 
Ответить
СообщениеТак у меня один код в форме, а другой на листе, переменную я привязываю от формы, где должно присвоится к "rrr" либо значение 21 либо 25 для кода листа (РСИ),
модуль в общем проекте есть но он не использует эту переменную
или я вообще не в ту степь, как нужно? не понимаюююююю

Автор - combat
Дата добавления - 22.11.2015 в 15:26
RAN Дата: Воскресенье, 22.11.2015, 15:52 | Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Понажимайте кнопочки
К сообщению приложен файл: Combat.xls (43.5 Kb)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеПонажимайте кнопочки

Автор - RAN
Дата добавления - 22.11.2015 в 15:52
_Boroda_ Дата: Воскресенье, 22.11.2015, 17:41 | Сообщение № 10
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Немного поясню словами
Так у меня один код в форме, а другой на листе, ..., модуль в общем проекте есть но он не использует эту переменную

Даже если у Вас модуля вообще нет, а весь код где-то в других местах, Вам нужно его (модуль) создать и там написать одну строку -
[vba]
Код
Public rrr As Integer
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеНемного поясню словами
Так у меня один код в форме, а другой на листе, ..., модуль в общем проекте есть но он не использует эту переменную

Даже если у Вас модуля вообще нет, а весь код где-то в других местах, Вам нужно его (модуль) создать и там написать одну строку -
[vba]
Код
Public rrr As Integer
[/vba]

Автор - _Boroda_
Дата добавления - 22.11.2015 в 17:41
combat Дата: Воскресенье, 22.11.2015, 17:57 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Что то я все таки не понимаю, или туплю, не знаю
в вашем примере глобальную переменную объявили в модуле, где и прописали код, но я то не использую модуль

прописал там переменную и то же самое
может быть я не так объясняю, может быть весь файл скинуть

после заполнения бланка и нажатия кн. Печать идет сохранение вот здесь ругается, выскочит ошибка
К сообщению приложен файл: _4___97.rar (98.5 Kb)


Сообщение отредактировал combat - Воскресенье, 22.11.2015, 18:00
 
Ответить
СообщениеЧто то я все таки не понимаю, или туплю, не знаю
в вашем примере глобальную переменную объявили в модуле, где и прописали код, но я то не использую модуль

прописал там переменную и то же самое
может быть я не так объясняю, может быть весь файл скинуть

после заполнения бланка и нажатия кн. Печать идет сохранение вот здесь ругается, выскочит ошибка

Автор - combat
Дата добавления - 22.11.2015 в 17:57
_Boroda_ Дата: Воскресенье, 22.11.2015, 18:19 | Сообщение № 12
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Давайте еще раз. В модуль1 сверху нужно дописать еще одно объявление. Вот так
[vba]
Код
Public Slov() As String
Public Ind() As Long
Public rrr
[/vba]
В остальном коде убрать все [vba]
Код
Dim rrr
[/vba] и наступит счастье!
в вашем примере глобальную переменную объявили в модуле, где и прописали код, но я то не использую модуль
Это называется "Не спрашивайте "Почему?", просто сделайте так". Ну такие правила объявления, так установили в МS.

У меня тоже не влезло. Тоже выкинул.
К сообщению приложен файл: 4___97_1.xlsb (77.4 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДавайте еще раз. В модуль1 сверху нужно дописать еще одно объявление. Вот так
[vba]
Код
Public Slov() As String
Public Ind() As Long
Public rrr
[/vba]
В остальном коде убрать все [vba]
Код
Dim rrr
[/vba] и наступит счастье!
в вашем примере глобальную переменную объявили в модуле, где и прописали код, но я то не использую модуль
Это называется "Не спрашивайте "Почему?", просто сделайте так". Ну такие правила объявления, так установили в МS.

У меня тоже не влезло. Тоже выкинул.

Автор - _Boroda_
Дата добавления - 22.11.2015 в 18:19
RAN Дата: Воскресенье, 22.11.2015, 18:22 | Сообщение № 13
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Тяжела она, шапка Мономаха.
Листы выкинул, думал без архива влезет.
Не влезло.
К сообщению приложен файл: 3815664.rar (34.3 Kb)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеТяжела она, шапка Мономаха.
Листы выкинул, думал без архива влезет.
Не влезло.

Автор - RAN
Дата добавления - 22.11.2015 в 18:22
combat Дата: Воскресенье, 22.11.2015, 18:29 | Сообщение № 14
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
УФФФ, все заработало, доходчиво теперь....
СПАСИБО!!!
 
Ответить
СообщениеУФФФ, все заработало, доходчиво теперь....
СПАСИБО!!!

Автор - combat
Дата добавления - 22.11.2015 в 18:29
RAN Дата: Воскресенье, 22.11.2015, 19:32 | Сообщение № 15
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Кстати, о Public.
Public z_ As String в модуле формы не нужно.
Public нужно на уровне проекта. На уровне модуля достаточно Dim z_ As String.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеКстати, о Public.
Public z_ As String в модуле формы не нужно.
Public нужно на уровне проекта. На уровне модуля достаточно Dim z_ As String.

Автор - RAN
Дата добавления - 22.11.2015 в 19:32
combat Дата: Воскресенье, 22.11.2015, 21:58 | Сообщение № 16
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Учел исправил. Если заметили, у меня есть лист калибровка, нужен для подгонки 2-х линий на листе РСИ (в основном по высоте), почему то на разных ПК, по разному рисует, вообще правильно ли я все сделал, или же по др. пути надо было идти
[moder]Какое отношение этот вопрос имеет к глобальным переменным?


Сообщение отредактировал _Boroda_ - Воскресенье, 22.11.2015, 22:00
 
Ответить
СообщениеУчел исправил. Если заметили, у меня есть лист калибровка, нужен для подгонки 2-х линий на листе РСИ (в основном по высоте), почему то на разных ПК, по разному рисует, вообще правильно ли я все сделал, или же по др. пути надо было идти
[moder]Какое отношение этот вопрос имеет к глобальным переменным?

Автор - combat
Дата добавления - 22.11.2015 в 21:58
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Объявление глобальной переменной (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!