Сохранить и извлечь значение переменных в форме Excel VBA - PullRequest
0 голосов
/ 10 октября 2018

Я программирую макрос в Excel-VBA для выполнения различных вычислений по фазам в рамках проекта.

Мне нужно запланировать способ сохранения работы, которую я рассчитывал в одной форме за раз, поэтому яможно продолжить еще один день.

Есть ли способ записать все значения переменных, которые уже были назначены или рассчитаны, в файл (.txt, .dat ...)?

Так что значение сохраненных переменных можно будет восстановить позже и продолжить работу.

Это будет работать как кнопки «сохранить», «сохранить как», «открыть».Но с переменными, введенными или вычисленными в моей форме.

Как можно сохранить все переменные, которые уже имеют значение?

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

Большое спасибо за помощь !!

1 Ответ

0 голосов
/ 10 октября 2018

Я могу показать вам, как сохранить данные во внешнем файле.Представим, что вы хотите сохранить четыре значения (для четырех переменных) в файле C:\DATA.dat.Четырьмя переменными являются DAT1, DAT2, DAT3 и DAT4 (логическое значение, целое число, одиночное число и строка).Вы можете использовать следующий код (в модуле VBA вашей рабочей книги), чтобы сделать это:

Sub SaveDATA()

    'Variables:
        Dim FilePath As String: FilePath = "C:\DATA.dat"
        Dim FSO As New FileSystemObject: Dim Writer As TextStream

        Dim DAT1 As Boolean: DAT1 = False
        Dim DAT2 As Integer: DAT2 = 3
        Dim DAT3 As Single: DAT3 = 3 / 7
        Dim DAT4 As String: DAT4 = "Another example"

    'Create/Overwrite the file:
        Set Writer = FSO.CreateTextFile(FilePath, True)

    'Write the file:
        Writer.WriteLine (DAT1)
        Writer.WriteLine (DAT2)
        Writer.WriteLine (DAT3)
        Writer.WriteLine (DAT4)

    'Close the file:
        Writer.Close

End Sub

Чтобы извлечь данные, сохраненные в файле, вы должны использовать нечто похожее на следующий код:

Sub ReadDATA()

    'Variables:
        Dim FilePath As String: FilePath = "C:\DATA.dat"
        Dim FSO As New FileSystemObject: Dim Reader As TextStream

        Dim DAT1 As Boolean
        Dim DAT2 As Integer
        Dim DAT3 As Single
        Dim DAT4 As String

    'Open the file:
        Set Reader = FSO.OpenTextFile(FilePath)

    'Read the file:
        DAT1 = Reader.ReadLine
        DAT2 = Val(Reader.ReadLine)
        DAT3 = Val(Reader.ReadLine)
        DAT4 = Reader.ReadLine

    'Close the file:
        Reader.Close

End Sub

Чтобы оба макроса работали, вы должны импортировать Microsoft Scripting Runtime ссылку (просто перейдите на Tools -> References и проверьте его.

Я не сделаю за вас остальную работу(на данный момент)! Это зависит от вас ... Сделайте некоторые впечатления! Это лучший способ учиться!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...