Глобальная переменная в проекте VBA Excel. Объявление глобальной переменной в модуле проекта VBA и обращение к ней из других модулей того же проекта.
Объявление глобальной переменной
Глобальная переменная — это переменная, которая объявлена в одном из модулей проекта VBA и доступна для использования во всех остальных модулях.
Чтобы переменная стала глобальной, она должна быть объявлена в начале модуля перед первой процедурой (раздел Declarations) с помощью оператора Public. Этот способ работает во всех модулях проекта VBA Excel.
Допускается объявление глобальной переменной с помощью оператора Global, но такой способ считается устаревшим и на сайте разработчиков уже не упоминается. Объявить глобальную переменную с оператором Global можно только в стандартном модуле.
Пример объявления глобальных переменных в любом модуле проекта VBA:
Public myGlobVar1 ‘по умолчанию — As Variant Public myGlobVar2 As String Public myGlobVar3 As Double |
Объявление глобальных переменных
Обращение к глобальной переменной
Примеры обращения к глобальной переменной, объявленной в разных типах модулей проекта VBA Excel. Актуально для обращения из модуля любого типа данного проекта.
Переменная в стандартном модуле
Если глобальная переменная (myGlobVar) объявлена в стандартном модуле (Module1) с уникальным именем, не повторяющимся в других модулях, к ней можно обращаться из других модулей по одному имени (в примере — из модуля формы):
Private Sub CommandButton1_Click() myGlobVar = «Глобальная переменная» TextBox1.Text = myGlobVar End Sub |
Стандартное обращение с указанием имени модуля (Module1), в котором объявлена глобальная переменная (myGlobVar):
Private Sub CommandButton1_Click() Module1.myGlobVar = «Глобальная переменная» TextBox1.Text = Module1.myGlobVar End Sub |
Переменная в модуле книги
Глобальная переменная (myGlobVar), объявленная в модуле книги, доступна при обращении к ней из других модулей с помощью следующего кода VBA Excel:
Sub Primer1() ThisWorkbook.myGlobVar = «Глобальная переменная» MsgBox ThisWorkbook.myGlobVar End Sub |
Переменная в модуле листа
Обращение к глобальной переменной (myGlobVar), объявленной в модуле рабочего листа (Лист1), из других модулей по имени листа (в проводнике проекта находится без скобок слева от имени ярлыка):
Sub Primer2() Лист1.myGlobVar = «Глобальная переменная» MsgBox Лист1.myGlobVar End Sub |
По имени ярлыка (в проводнике проекта находится в полукруглых скобках справа от имени листа):
Sub Primer3() Worksheets(«Лист1»).myGlobVar = «Глобальная переменная» MsgBox Worksheets(«Лист1»).myGlobVar End Sub |
Переменная в модуле формы
Глобальная переменная (myGlobVar), объявленная в модуле формы (UserForm1), доступна при обращении к ней из других модулей с помощью следующего кода VBA Excel:
Sub Primer4() UserForm1.myGlobVar = «Глобальная переменная» MsgBox UserForm1.myGlobVar End Sub |
Переменная в личной книге макросов
Обращение к глобальной переменной (myGlobVar), объявленной в модуле ЭтаКнига
проекта VBAProject (PERSONAL.XLSB)
из модуля проекта VBA обычной книги Excel:
Sub Primer5() Workbooks(«PERSONAL.XLSB»).myGlobVar = «Глобальная переменная» MsgBox Workbooks(«PERSONAL.XLSB»).myGlobVar End Sub |
Мне не удалось получить доступ из проекта VBA текущей книги Excel к глобальной переменной, объявленной в стандартном модуле личной книги макросов.
Всем привет.
Поискал по интернету, но не смог понять, как создать глобальную переменную? Такую переменную, которая будет читаться в любом месте программы, открытой Excel книге?
Я попытался создать переменную в «ЭтаКнига»
Workbook и open
Option Explicit
[vba]
Код
Public Version As String
Public Sub Workbook_Open()
Version = «Глобальная переменная»
End Sub
[/vba]
Но данный способ не работает. Когда я обращаюсь из модуля или формы к Version, то он пишет ошибку и говорит, переменная не объявлена.
Мне бы очень помогла такая переменная, которая бы обозначалась еще при запуске книги и далее, она бы сопровождала все действия пользователя.
Не зависимо открывает он форму, меняет лист или добавляет и т.д. Данная переменная всегда доступна для процессов в коде.
Спасибо.
Здравствуйте, уважаемые эксперты. Нужно один раз объявить переменную (а можно и константу), присвоить ей значение и использовать во всех листах и модулях книги. До её закрытия. 1. Где её объявить ? В «Эта книга» ? Сделал так, неверно. Пробовал еще всякие комбинации. Не нашел решения. Изменено: Сергей Евдокимов — 11.04.2022 07:27:30 Компьютер никогда не заменит человека (©️ Hannibal Lecter) |
|
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#2 11.04.2022 07:37:27
в любом стандартном модуле. На событие открытия книги присваивать значение.
Что такое переменная и как правильно её объявить? Изменено: Дмитрий(The_Prist) Щербаков — 11.04.2022 07:38:36 Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||||
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
#3 11.04.2022 07:42:46
1. Константа — Ей нельзя присвоить что-то сложновычисляемое, и ссылкой на объект она быть точно не может. Изменено: БМВ — 15.04.2022 17:40:14 По вопросам из тем форума, личку не читаю. |
||
Общие сведения об области и видимости переменных VBA Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
|
Сергей Евдокимов Пользователь Сообщений: 442 (Win’11-Excel’21/365) |
#5 11.04.2022 10:22:12 Дмитрий(The_Prist) Щербаков, Спасибо.
Здесь у меня точно была ошибка. Присваивать значение переменной можно только внутри процедуры ?
Спасибо. Теперь буду знать.
У меня получилось, что одно и то же 7 раз в разных процедурах присваиваю (Set ws = ThisWorkbook.Worksheets(«ИмяЛиста»)) Изменено: Сергей Евдокимов — 11.04.2022 10:57:10 Компьютер никогда не заменит человека (©️ Hannibal Lecter) |
|||||
Jack Famous Пользователь Сообщений: 10852 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#6 11.04.2022 10:25:21
вам прямо он был написан тут же первым ответом
у вас за строку в VBA надо деньги платить? Попробуйте и узнаете — больше времени на вопрос потратили, чем на такую проверку. Если переменная НЕ КОНСТАНТА (которой присваивать значение можно только при объявлении) и переменная ВИДНА, то менять её значение МОЖНО. Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
||||||
Сергей Евдокимов Пользователь Сообщений: 442 (Win’11-Excel’21/365) |
#7 11.04.2022 10:41:39
Да. Спасибо. Я просто не знал, что Дмитрий внёс ясность. Изменено: Сергей Евдокимов — 11.04.2022 10:44:04 Компьютер никогда не заменит человека (©️ Hannibal Lecter) |
||
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
#8 11.04.2022 11:43:53
Смотря для чего вы и что делаете. Если это результат вычислений или параметрическая таблица, которая потом используется много раз в других процедурах, то это позволяет не заботится о передаче её в процедуры, ну и инициализировать один раз. Если например нужно зафиксировать лист , который был при открытии, то тоже можно, но как я уже писал, при сбросе, переменная будет пустой что станет сюрпризом. По вопросам из тем форума, личку не читаю. |
||
или «ИмяЛиста» сделать глобальной константой Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
|
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
#10 11.04.2022 12:58:30
Вполне применимо, но вдруг еще и книгу менять, тогда …. По вопросам из тем форума, личку не читаю. |
||
This is a question about scope.
If you only want the variables to last the lifetime of the function, use Dim
(short for Dimension) inside the function or sub to declare the variables:
Function AddSomeNumbers() As Integer
Dim intA As Integer
Dim intB As Integer
intA = 2
intB = 3
AddSomeNumbers = intA + intB
End Function
'intA and intB are no longer available since the function ended
A global variable (as SLaks pointed out) is declared outside of the function using the Public
keyword. This variable will be available during the life of your running application. In the case of Excel, this means the variables will be available as long as that particular Excel workbook is open.
Public intA As Integer
Private intB As Integer
Function AddSomeNumbers() As Integer
intA = 2
intB = 3
AddSomeNumbers = intA + intB
End Function
'intA and intB are still both available. However, because intA is public, '
'it can also be referenced from code in other modules. Because intB is private,'
'it will be hidden from other modules.
You can also have variables that are only accessible within a particular module (or class) by declaring them with the Private
keyword.
If you’re building a big application and feel a need to use global variables, I would recommend creating a separate module just for your global variables. This should help you keep track of them in one place.
глобальна переменная в excel
Смотрите также dD не объявлена. «Public» ? РечьPublic нужно на
_Boroda_Sheets(«Save»).Range(«b» + LTrim$(Str$(z)))
сказал (и какэто как? у Вас поубавится… Long Public MesПри дебагере эта: Если затем это эти вот строчки. = Sheets(1).OptionButton1 EndRoman777 и т.д. Данная: делаю макрос собирающийLendor Если не декларировано, идет о глобальной уровне проекта. На: Немного поясню словами = Worksheets(«РСИ»).Cells(25, 14).Value я делал), то2Korolana
The_Prist As Long Public процедура вызывается, но значение (100500) не Хотелось бы в
Sub2ой: Просто поменять: переменная всегда доступна статистику по листам
: уважаемые форумчане, помогите. то после выполнения переменно объявленной через
уровне модуля достаточноДаже если у ‘ зав. № мне придется очищатьУ меня не: На мой взгляд Srok As Long
Srok все равно менялось, то оно сааааамом начале проекта «Name», c «OptionButton1»BaroVit
для процессов в книги возникли проблемы с
процедуры test1, последующее Dim. Вы же
Dim z_ As Вас модуля вообще….
ячейки перед сохранением.Кроме получается использовать Public это как раз Sub InitPublic() With empty после прохождения. так и останется его вычислить и на «op1». Ну, простите) я сёдня коде.и формирующий отчет объявленимем глобальной переменной. выполнение test2 выдаст использовали модификатор доступа.
String. нет, а весьEnd Sub того,к переменным удобней
уровня модулей книги тот случай, когда Worksheets(«Исходные Данные») GodЮрий М таким. И переменная вставлять по ходу
тоже вариант. туплю, я спутал
Спасибо.
на своем листеобъявляю глобальную переменную пустой MsgBox, т.к.
Hugo121combat
код где-то вкто подскажет, где
обращаться, чем к
и листов во
размер не имеет
= .Range(«God») Mes: А что у будет доступна в
действа, когда нужен.Но хотелось, бы
Вас сBaroVit
в этой же в отдельном модуле dD будет пуста.: Материал из Википедии
CyberForum.ru
Объявить глобальную переменную, для всей книге (Макросы/Sub)
: Учел исправил. Если других местах, Вам
ошибка почему rrr ячейкам. всех модулях. значения = .Range(«Mes») Srok Вас в процедуре любом модуле.С другой переменной,
услышать(почитать), ваши вариантыlopuxi
: ЭтаКнига.Version
книге(этот лист не
Public glob As
Сделайте тоже самое, — свободной энциклопедии
заметили, у меня
нужно его (модуль) для кода листа
А если объявлять
Это так должноОшибка-то явно в = God * InitPublic? Где она?Обратите внимание: переменные тоже задающейся в решения, предложения, мнение)))
RAN создаю, а каждый Integerона принимает определенное но объявите переменнуюВ программировании глобальной есть лист калибровка, создать и там
«РСИ» не присваивается Public в листе быть или я объявлении, а не 12 + Mes И может есть God, Mes, Srok,
самом начале, попробовал
по данной ситуэйшине…Schumacher56
: Public переменные декларируются раз очищаю). значение при выполнении dD в любом переменной называют переменную, нужен для подгонки написать одну строку
значение 21 или или книге,то не тупой?
в самих кодах. End With End
смысл показать небольшой
i, j, N
такую вот штуку:
Априори спасибо за
: Hi guys and в
как укоротить вот
макроса по нажатию стандартном модуле. Поймете областью видимости которой 2-х линий на
- 25 в зависимости пашет — такИ ещё. Может
Поэтому даже большой Sub
файл, где всё будут иметь типЦитатаConst StartDate As ответы, подсказки :-) ladys. Суть вопросастандартном такую запись: кнопки. далее данная
того, что в является вся программа… листе РСИ (в200?’200px’:»+(this.scrollHeight+5)+’px’);»>Public rrr As Integer от условия в
и задумано очевидно.Только
подскажите как использовать проект можно просмотретьне помогло - это происходит? Variant. Date = Worksheets(«123»).Range(«StartDate»)
_shark в следующем, какмодуле, а ЭтаКнигаRLN = «doc1″
глобальная переменная должна ThisDocument нельзя объявитьА слово Dim основном по высоте),combat формы2 в модуле. функцию из внешнего
бегло только в в юзер формеpeatP.S. Я глобальные
заругалась «constant expression: можно описать глобальную создавать глобальные переменные — это модульActiveWorkbook.Worksheets(RLN). — каждый исползоваться еще в глобальную переменную. первым написали Вы
excelworld.ru
Как создавать и инициализировать глобальные переменные?
почему то на: Что то яRANВообщем всем спасибо.Делайте проекта. Не доезжаю. нужных местах, не Srok = empty,
: всегда пишу каждую
required». Найденные в переменную типа Control и тут же класса. раз при обращении
одной процедуре, котораяА автор темыSn1p3rOk разных ПК, по все таки не: Потому, что
всё как написал(а)sergmagunov ковыряясь в кодах. если call InitPublicЮрий М,
в отдельную строку. сети варианты с и присвоить ей их инициализировать?lopuxi
к листу-отчету запускается при нажатии
не уточнял: Dim: Вы немножко не разному рисует, вообще понимаю, или туплю,Цитата Korolana (если конечно: Приведи пример своегоpeat
— то невидимо, она неThe_Prist Set… тоже успехом
значение при инициализацииГлобальную переменную мы: Вот это япытаюсь объявить переменную другой кнопки, но
или Public. Он понимаете суть этой правильно ли я не знаюcombat, 22.11.2015 в значения вам нужно
модуля, будет понятнее:
находит ее.. там… Она в: Вынесите присвоение переменным не увенчались. формы или открытии
объявляем так: пишу в модуле. лист: в данной процедуре спрашивал про цитаты. все сделал, илив вашем примере
11:32, в сообщении хранитьKorolanaThe_Prist,
The_Prist самом верху модуля,
значений в отдельнуюпрошу вашей помощи, книги.Public var AsОбъявить переменную яDim ReportList as значение этой переменной
глобальныеИ ещё раз же по др. глобальную переменную объявили № 1200?’200px’:»+(this.scrollHeight+5)+’px’);»>В исполняемомтолько в оперативной: It could beда вот именно,: Необходимо поместить в в котором бОльшая
процедуру(скажем InitPublic). Затем знатоки!Option Explicit Public StringОтлично, теперь строковая объявил. WorkSheet
«Empty», несмотря нав module и повторюсь речь идет
пути надо было в модуле, где коде формы объявил памяти). some reasons of
что я не один стандартный модуль часть кода. при открытии книги
CyberForum.ru
Создание глобальной переменной или константы, в которую будет занесено значение из ячейки
у меня вся obChoice As Control var видна во200?’200px’:»+(this.scrollHeight+5)+’px’);»>
потом инициализирую: то что в ThisDocument. А Вы о глобальной переменной идти и прописали код, глобальную переменную rrrcombat your failure один раз объявлял — ЛЮБОЙ. СТАНДАРТНЫЙ.Содержит в себе запускайте эту процедуру: эта байда во Private Sub Workbook_Open()
всех модулях иOption Explicit
RLN = «doc1″ первой процедуре ее его в заблуждение в modul1 иКакое отношение этот но я тоcombat: В исполняемом кодеFirst of all, ее в этихНе проще было вот что:
Private Sub Workbook_Open() вкладке «Modules», где Set obChoice = процедурах.
Public VersionAs StringReprtList=ActiveWorkbook.Worksheets(RLN)
значение определено. Может вводите, не приводя в ThisDocument про вопрос имеет к не использую модуль
: Все равно не формы объявил глобальную
check that your самых кодах и, уже выложить свойSub InitPublic() With Call InitPublic End у меня описание Sheets(1).OptionButton1 End Subпосле1. А какPublic Function MyFunVer()
получаю рантайм ошибку быть я неправильно доступные аргументы своей остальное речи нет. глобальным переменным?прописал там переменную понял, все таки переменную rrr variable, declared as чистя их, нашел файл? 100% Вы
Worksheets(«123») God = Sub всех кнопок, функции этого можно обращаться её инициализировать, так
Version = «Глобальная 91. Как это ее объявляю или позиции, возводя всеТо есть, допустимVeX и то же как решить проблему,
200?’200px’:»+(this.scrollHeight+5)+’px’);»>Option Explicit public in module, понял в чем
сами себе проблему .Range(«God») Mes =Так же на и тп. Мб к методам OptionButton что бы сразу переменная» по человечески сделать? не там? в спор и это module1: Скажите в чем самое что не так,’ is not declared ошибка)
создали и саами .Range(«Mes») Srok = всякий случай в куда в другое где угодно через у неё былоEnd FunctionKoGG
ikki попытки доказать своюDim глобальнаяПеременная As разница объявления глобальныхможет быть я
не там объявилPublic rrr As in your sheet
мне казалось, скачивать не понимаете что God * 12 каждой процедуре, в место надо перенести obChoice, например, obChoice.Caption
исходное какое либоМне всего то: SET ReprtList=ActiveWorkbook.Worksheets(RLN)
: глобальные переменные должны позицию(неверные, судя по Integer Sub НекотораяПроцедура() переменных в module1 не так объясняю,RAN
Integer as private. файл еще муторней)
и куда Вы + Mes End
которой переменная может объявление глобальных переменных/констант? и т.д. значение?
нужно, задать ейsabrus быть объявлены в написанному). Dim локальнаяПеременная As или в ThisDocument? может быть весь: Что такое переменнаяDim SRng AsTry it not В итоге, Вы пишите, что и
With End Sub понадобиться, можно делатьЮрий МP.S. Пишу, вВообще конечно как параметр, который смогу
:стандартномVeX Integer End SubЕстественно, и можно ли файл скинуть и как правильно Range ‘, InRng in your project, и помогли по
приводит к некорректнойВероятно, она не
проверку:: Где у Вас основном, под Corel’овским вариант, решения данной
использовать везде.KoGGмодуле.: Последнее утверждение кстати
если переменная объявлена вообще там объявлятьпосле заполнения бланка её объявить? As Range but in any описанию работе.
там висит. ЕслиIf Mes = объявлены глобальные переменные? VBA, но думаю, проблемы инициализировать иНо переменная пуста.: И еще тамне
верно, т.к. уPublic переменная As
переменные? и нажатия кн.combatDim roww As “empty” project justLegjpeat
не в этом 0 Then Call Нужно в области что и в присвоить ей значение
Как занести в две разные переменныев модуле листа меня тоже самое Integerто она будетSn1p3rOk
Печать идет сохранение: То есть, я Long to learn.: Проблема: есть макрос,один: конечно, сам создал)
дело, накрамсаю файл InitPublic деклараций стандартного модуля. Excel’е всё так в событии: нее что ни ReportList и ReprtList. или модуле книге — переменные объявленные доступна во всех: Там это где? вот здесь ругается, не там вставил
в этой формеSomething like this: лист и собственно но с вашей
для примера.Так же можете Т.е. ПЕРЕД ними жеPrivate Sub Workbook_Open()Вариант… будь?lopuxi
или модуле класса. в thisDocument не
модуляхГлобальные переменный объявленные выскочит ошибка200?’200px’:»+(this.scrollHeight+5)+’px’);»>Public rrr As Integer должен получить значенияIn module: книга — нужно помощь сам иЮрий М почитать про переменные: не должно никакихSchumacher56
Но может, естьRAN: Всем привет.использовать глобальную переменную видны из стандартныхThe_Prist
в ThisDocument видны_Boroda_нужно было вставитьКод200?’200px’:»+(this.scrollHeight+5)+’px’);»>Private Sub OptionButton1_Change()
Public sStr As где-то хранить числовые решил — в: И процедура InitPublicА то Вы процедур. А значения: Ну да, всё возможность, как то: Странный вопрос.Поискал по интернету,
можно использовать в модулей => отсюда: Не согласен. Скорее во всем документе,: Давайте еще раз. в ЭтаКнига?Frame1.Height = 150 StringIn Sheet1: значения, используемые во другом модуле эта в модуле книги
их объявляете неверно(Юрий им присваивайте в тоже. иначе решить даннуюВы выложили код, но не смог любом модуле.
и был вопрос Вы не понимаете. то есть в В модуль1 сверхупредложенный ресурс почитал,If OptionButton1.Value =Private Sub Worksheet_BeforeDoubleClick(ByVal всех трех модулях,всё же переменная тоже на событие открытия? уже указал Вам процедуре, которая выполняетсяPrivate Sub Workbook_Open()Согласен проблему? не содержащий ни понять, как создатькроме того, программист
можно ли в Глобально — это module1, module2 и нужно дописать еще на мысль об True Then Target As Range, время пока книга
объявлялась, как паблик, Давайте лучше небольшой на это). самой первой. вариант через, обработчикВообще, данный вопрос
единой ошибки. После глобальную переменную? Такую должен следить за thisDocument переменные объявлять значит везде, во т.д. одно объявление. Вот ошибке не на
rrr = 21 Cancel As Boolean) открыта. Я сделал в этом проблема пример…Hugopeat события открытия документа, возник из следующего: его выполнения переменная переменную, которая будет
тем, чтобы случайно для всего документа? всем проекте. ЕщеГлобальные переменные объявленные так
planetaexcel.ru
Создание глобальных переменных в Excel
вел… sStr = ‘MyTest’ ещё один лист и была)еще разThe_Prist: Ну и вместо: пока, что наиболееВот в Excel Version принимает значение читаться в любом не переобъявить в Выходит что нельзя такие переменные называют в module1 видны200?’200px’:»+(this.scrollHeight+5)+’px’);»>Public Slov() As StringPelena
End Sub End SubIn Sheet2: невидимый и в спасибо: InitPublic должна быть integer пишите LongЮрий М, самый подходящий вариант.
на Лист1 я «Глобальная переменная». И месте программы, открытой других модулях глобальнуюpashulka объявленными на уровне только в module1.Public Ind() As: Цитата из статьиPrivate Sub OptionButton2_Change()Private Sub Worksheet_BeforeDoubleClick(ByVal
его ячейках этиЮрий М
расположена в стандартном — оно оправданнеена самом верху,
Сильно, хочу услышать
добавляю несколько объектов
что вы хотите Excel книге? переменную на локальном: Модуль ThisDocument проекта. А переменные,
VeX Long по ссылке
Frame1.Height = 150 Target As Range, значения храню, но: Не понимаю -
модуле. Так же в новых версиях да:
мнения остальных??? Что «OptionButton», «ListBox» и от нас?Я попытался создать
уровне.Public openDate As объявленные оператором Dim: Там я имелPublic rrrRANIf OptionButton2.Value =
Cancel As Boolean) это не по-людски почему люди так как и объявление VBA, и кроме
перед ними ничего
никто, так не
т.п. Вот чтоBaroVit
переменную в «ЭтаКнига»Catstail DateЛюбой стандартный модуль в области объявлений ввиду thisdocument
В остальном коде: Вот уж воистину True Then Target.Value = sStr как-то. Можно ли упорно не желают
Public переменных. того у Вас нет. Если в
делает? бы не обращаться: Я новичок вWorkbook и open: — так переменную
Private Sub Test1() модуля — называют
сомневался можно ли убрать все Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>Dim — «Смотрю вrrr = 25 End SubAfter writing создать какие-нибудь общие показывать файлы-примеры?.. Давно
peat с integer не первой процедуре Srokpeat к ним, я VBA. Эту задачу
Option Explicit Public там и ThisDocument.openDate = Date переменными модуля, т.к. там переменные объявлять rrr и наступит книгу, вижу …»… this code,
переменные, или массив бы получили правильный: нашел проблему - будет работать на получит значение 100500,: Доброго времени суток!
делаю так: решаю так, как200?’200px’:»+(this.scrollHeight+5)+’px’);»> не объявишь… Ошибка End Sub Private
действуют они исключительноSn1p3rOk
CyberForum.ru
Объявление глобальной переменной (Макросы/Sub)
счастье!Там и ссылочкаEnd Ifgo to Sheet1,
или объект какой?
ответ.
у меня не весь лист (ругнётся
то при любых Надеюсь на вашуSet op1 =
показал в примере.Public Version As
будет. Sub Test2() MsgBox
в пределах того
: Можно.
Это называется «Не есть Что такое
End Sub
DoubleClick in any
sergmagunov
peat
один стандартный модуль.
на LastRow (As дальнейших вызовов этой
помощь)
Sheets(1).OptionButton1и «играюсь» уже
Пример в файле
String
Есть еще такой ThisDocument.openDate End Sub модуля, внутри которогоHugo121 спрашивайте «Почему?», просто модуль? Какие бываюта вот здесь place, then,: А можно более
: у меня достаточно
При удалении других
Integer)). переменной, ее значение
История такая -
с «op1». ВсёRoman777
Public Sub Workbook_Open()
стиль объявления (устаревший,
Hugo121 объявлены.: Тесты показывают что сделайте так». Ну модули?
появляется ошибка, кодgo to Sheet2, уточнить вопрос. Потому
большой файл, в
модулей глобальная переменная
peat будет равно 100500? в моем документе good.:Version = «Глобальная но работающий):: Т.е. можно если
В модулях класса оба утверждения ошибочны.
такие правила объявления,combat на листе, ггг DoubleClick in any что можно сделать нем много кода.
Srok спокойно работает:провел эксперимент и куча листов иНо, видимость даннойBaroVit
переменная»Global x as очень хочется Спасибо, глобальные переменные вообще
Я в ThisDocument так установили в: Так у меня показывает, что Empty
place and this обыкновенную формулу используя
он не сложный, в юзерформе. НадоЮрий М, The_Prist, Hugo, ваши слова подтвердились)спасибо
нудных формул. В «op1» только в, что-то Ваш пример
End Sub integer pashulka. бессмысленны. Попробуйте в
вообще пишу только МS. один код в Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sheets(«Save»).Range(«a» + LTrim$(Str$(z)))
cell will get функции листа, где никуда не претендует, создать какой-то другойспасибо Вам всем большое! самом начале вычисляется текущей процедуре «sub», совсем не соотвествуетНо данный способКазанский
Но т.к. у ThisDocument объявить переменную макросы событий книги.У меня тоже
форме, а другой = Mid(Worksheets(«РСИ»).Cells(15, 1).Value, “MyTest” value данные будут формироваться
но его много) модуль? читал по
большое! ценные советывозник другой вопрос
кол-во временных интервалов. для новой приходится сообщению №4))) не работает. Когда: Объявишь Только обращаться меня нет доверия As Public: Всё остальное в не влезло. Тоже
на листе, переменную
rrr, 999) ‘IgorTr накопительно. надо бОльшую часть вашей ссылке про
не знающим vba) — пользователь открывает Надоело в каждой заново, прописывать:Roman777 я обращаюсь из
к ней сложнее. макросам модуля книгиPublic dD as
стандартные модули! выкинул. я привязываю от наименование, тип, рег.
: 2KorolanaKorolana удалить, чтобы не модуи классов -peat
документ и выполняет процедуре прописывать это.Set op1 =: Как было уже модуля или формыНапример, такой счетчик
(кроме конечно событий
DateЗатем создайте новыйSn1p3rOk
RAN
формы, где должно №Я не очень: Add to your
мешала поиску проблему мне туда?: процедуры не с Их кол-во задается Sheets(1).OptionButton1Поэтому от вас
подсказано, в приложенном к Version, то изменений листа: ‘модуль
книги) — были стандартный модуль и: Хочу послушать ваши
: Тяжела она, шапка присвоится к «rrr»
Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub CommandButton2_Click()
то по-англицки читать project module and — лениво немного)
The_Prist
The_Prist, самой первой, а
в начале и нужно, как вы файле выполнено.
он пишет ошибку листа Лист1 Public глюки, то не запишите в нем доводы. Особенно по
Мономаха. либо значение 21ActiveSheet.PrintOut умею, но мысль keep there everything и выкладывать как-то: peat, Вы считаетесделал, как вы последние 2, к не меняется. Вот решаете данную проблему?BaroVit и говорит, переменная i As Integer вижу смысла объявлять две процедуры:
поводу второго.Листы выкинул, думал либо 25 для
excelworld.ru
В чем разница объявления глобальных переменных в module или в ThisDocument?
Dim z As как-бы такая: нефига what you want. стремновато — диплом необходимым пустое сообщение описали. Весь код примеру. Но в код (я не
Тут нужны ваши: В 4-м сообщении
не объявлена. ‘модуль ЭтаКнига Private переменные там, аSub test1() dDHugo121 без архива влезет.
кода листа (РСИ), Variant объявлять глобально переменные
If you declare все ж таки) писать?
в модулях прекрасно них этот самый
прогер, так что предложения, мнения, опыт…
в коде нетМне бы очень Sub Workbook_SheetChange(ByVal Sh
не в стандартном = Date End: Так по поводуНе влезло.модуль в общем
z = 1 на листах? Или your variables there хотя пока подготавливал
peat понимает глобальную переменную, Srok используется. Каким это говнокод, вероятнееУ меня вот ошибок. Я показал, помогла такая переменная, As Object, ByVal
модуле, что всегда Sub Sub test2() второго вообще бесспорноcombat проекте есть ноWhile Sheets(«Save»).Range(«a» + как? as public, all
файл к выкладыванию,: но вот код
будет его значение? всего): пока такие варианты: как я из
которая бы обозначалась Target As Range)
гарантированно работает. MsgBox dD End — глобальные (т.е.: УФФФ, все заработало,
он не использует LTrim$(Str$(z))) <> «»Legj Sheets from your нашел ошибку)The_Prist,
в юзер форме Эксель как бы
Srok глобально объявлен1ый здесь инициализировать разных модулей обращаюсь еще при запуске If Sh Is
pashulka SubПопробуйте их выполнить Public) объявленные в доходчиво теперь….
эту переменнуюz = z + 1: Korolana: Thank you project will seeЮрий Мнет, просто надо отказывается это делать. на заднем фоне как целое, публичную (и то к глобальной переменной, книги и далее, Лист1 Then Лист1.i: и посмотрите на одном модуле -СПАСИБО!!!
или я вообщеWend very much.I have them: Вам лениво готовить
было его удалитьВставил вот такую втихую выполнит процедуру,ЦитатаPublic God, Mes, пока не проверял),
объявленной в ЭтаКнига. она бы сопровождала = Лист1.i +Hugo121 результат. Если у видны во всехRAN не в туSheets(«Save»).Range(«a» + LTrim$(Str$(z))) made as youIgorTr небольшой файл, а — не нашел штуку в которой Srok Srok As Integerпроблем что не оченьКак я понял
все действия пользователя. 1 MsgBox Лист1.i, это была не Вас декларировано объявление модулях и формах.: Кстати, о Public. степь, как нужно?
= Mid(Worksheets(«РСИ»).Cells(15, 1).Value, said and the: 2sergmagunov нам не лениво кнопки)If Srok = считается и возьмет с вызовом в нравится: из вопроса автора,Не зависимо открывает End If End агитация ибо переменная переменных(Option Explicit) -Sn1p3rOk
Public z_ As не понимаюююююю rrr, 999) ‘ code works now.Вот я не искать Вашу ошибкупопробовал создать модуль Empty Or Srok верное значение или каждой процедуре неPrivate Sub Workbook_Open() он именно это он форму, меняет
Sub Public/Global + стандартный
то VBA сразу: Где вы видите
String в модулеRAN наименование, тип, рег.Serqmaqunov: Если делать понял ‘данные будут
по описанию? С класса, запихнул туда = 0 Then подставит 0?)
было, но в Public op1 as и хочет сделать. лист или добавляетsabrus модуль = заругается, что переменная в вопросе слово формы не нужно.: Понажимайте кнопочки №
так как ты формироваться накопительно’ таким подходом помогающихPublic God As Call InitPublicЮрий М каждую приходится писать
CyberForum.ru
Object Set op1