Я новичок в VB6 и пытаюсь написать макрос, используемый для CorelDraw.VBA - Передача переменной между модулями
У меня есть переменная, что нужно передать из класса модуля в стандартный модуль, в моем модуле класса «SaveOptClass» Я публичная переменная называется IsSaved и он установлен на модуле класса:
Public IsSaved As Boolean
Public Sub SaveFile()
If <some triggers> Then
IsSaved = True
End If
В Стандартный модуль:
Sub DoSave()
Dim SaveClass As SaveOptClass
Set SaveClass = New SaveOptClass
If SaveClass.IsSaved = True Then
ActiveDocument.Save
Else
Form1.Show
End If
End Sub
в основном я пытаюсь передать «IsSaved» логическое значение от класса модуля к стандарту. (Если IsSaved имеет значение true, сохраните документ или покажите форму.)
Я тестировал, что логическое значение имеет значение «Истина», когда я выполнял код, но я не могу передать состояние другому модулю.
Есть ли что-то, что я пропущу здесь? Заранее спасибо.
То, что у вас есть, синтаксически корректно и будет делать то, что вы думаете, но не логически корректно (если вы не опустили что-то), поскольку вы никогда не вызываете SaveFile() - поэтому после создания нового экземпляра класса IsSave всегда будет false по умолчанию ... –
Это потому, что вы инициализируете экземпляр 'SaveOptClass' в' DoSave' и, возможно, другие методы тоже. Я бы предложил переместить объявление ('public saveClass as SaveOptClass') и инициализацию (' Set SaveClass = New SaveOptClass') в место, где он будет выполняться только один раз (скажем, в базовом модуле). Таким образом, все другие методы будут совместно использовать один экземпляр. – shahkalpesh