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

Вход

Регистрация

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

 

= Мир MS Excel/Получение сохраненных данных из реестра - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Получение сохраненных данных из реестра (Макросы/Sub)
Получение сохраненных данных из реестра
t330 Дата: Понедельник, 06.05.2019, 13:05 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 98
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Добрый день.

Подскажите пожалуйста почему не выводятся последние записанные в реестр данные для ТекстБокса на форме.
Причем судя по реестру (regedit) функция Savedefaults отрабатывает нормально и данные из формы при нажатии кнопки CommandButton1 нормально записываются в реестр..
А вот функция GetDefaults не срабатывает и не подставляет данные из реестра обратно в форму, когда ее заново запускаешь кнопкой на листе...
Код ниже
пример во вложении
Спасибо
[vba]
Код


Option Explicit

Private Sub UserForm1_Initialize()
Call GetDefaults
End Sub

Private Sub CommandButton1_Click()
Call SaveDefaults
Unload Me
End Sub

'записываем в реестр все последние данные из формы
Sub SaveDefaults()
    Dim ctl As Control
    Dim CtrlType As String
    
    For Each ctl In Me.Controls
        CtrlType = TypeName(ctl)
        If CtrlType = "TextBox" Then
            SaveSetting "test", "Defaults", ctl.Name, ctl.Value
            'Debug.Print ctl.Name, CStr(ctl.Value)
        End If
    Next ctl
End Sub

'получаем из реестра все последние данные из формы
Sub GetDefaults()
    Dim ctl As Control
    Dim CtrlType As String
    
    For Each ctl In Me.Controls
        CtrlType = TypeName(ctl)
        If CtrlType = "TextBox" Then
            GetSetting "test", "Defaults", ctl.Name ', ctl.Value
            Debug.Print ctl.Name, ctl.Value
        End If
    Next ctl
End Sub

[/vba]
К сообщению приложен файл: test.xlsm(23.4 Kb)


Сообщение отредактировал t330 - Понедельник, 06.05.2019, 14:55
 
Ответить
СообщениеДобрый день.

Подскажите пожалуйста почему не выводятся последние записанные в реестр данные для ТекстБокса на форме.
Причем судя по реестру (regedit) функция Savedefaults отрабатывает нормально и данные из формы при нажатии кнопки CommandButton1 нормально записываются в реестр..
А вот функция GetDefaults не срабатывает и не подставляет данные из реестра обратно в форму, когда ее заново запускаешь кнопкой на листе...
Код ниже
пример во вложении
Спасибо
[vba]
Код


Option Explicit

Private Sub UserForm1_Initialize()
Call GetDefaults
End Sub

Private Sub CommandButton1_Click()
Call SaveDefaults
Unload Me
End Sub

'записываем в реестр все последние данные из формы
Sub SaveDefaults()
    Dim ctl As Control
    Dim CtrlType As String
    
    For Each ctl In Me.Controls
        CtrlType = TypeName(ctl)
        If CtrlType = "TextBox" Then
            SaveSetting "test", "Defaults", ctl.Name, ctl.Value
            'Debug.Print ctl.Name, CStr(ctl.Value)
        End If
    Next ctl
End Sub

'получаем из реестра все последние данные из формы
Sub GetDefaults()
    Dim ctl As Control
    Dim CtrlType As String
    
    For Each ctl In Me.Controls
        CtrlType = TypeName(ctl)
        If CtrlType = "TextBox" Then
            GetSetting "test", "Defaults", ctl.Name ', ctl.Value
            Debug.Print ctl.Name, ctl.Value
        End If
    Next ctl
End Sub

[/vba]

Автор - t330
Дата добавления - 06.05.2019 в 13:05
krosav4ig Дата: Понедельник, 06.05.2019, 18:42 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2148
Репутация: 893 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
UserForm1_Initialize()
[/vba]
Единичка лишняя
[vba]
Код
GetSetting "test", "Defaults", ctl.Name ', ctl.Value
[/vba] функция старается, несется сломя голову в реестр, тащит нам от-туда какие-то данные, а мы у нее, такие неблагодарные, их не берем :)
[vba]
Код
ctl.Value = GetSetting ("test", "Defaults", ctl.Name)
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Вторник, 07.05.2019, 04:17
 
Ответить
Сообщение
[vba]
Код
UserForm1_Initialize()
[/vba]
Единичка лишняя
[vba]
Код
GetSetting "test", "Defaults", ctl.Name ', ctl.Value
[/vba] функция старается, несется сломя голову в реестр, тащит нам от-туда какие-то данные, а мы у нее, такие неблагодарные, их не берем :)
[vba]
Код
ctl.Value = GetSetting ("test", "Defaults", ctl.Name)
[/vba]

Автор - krosav4ig
Дата добавления - 06.05.2019 в 18:42
t330 Дата: Понедельник, 06.05.2019, 23:52 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 98
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
неблагодарные, их не берем


Единичку убрал, спасибо:)
А вот дальше не понял...(см скрин) выдает синтаксическую ошибку..


Сообщение отредактировал t330 - Понедельник, 06.05.2019, 23:53
 
Ответить
Сообщение
неблагодарные, их не берем


Единичку убрал, спасибо:)
А вот дальше не понял...(см скрин) выдает синтаксическую ошибку..

Автор - t330
Дата добавления - 06.05.2019 в 23:52
krosav4ig Дата: Вторник, 07.05.2019, 04:18 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 2148
Репутация: 893 ±
Замечаний: 0% ±

Excel 2007,2010,2013
выдает синтаксическую ошибку
скобочки забыл, исправил в своем посте


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
выдает синтаксическую ошибку
скобочки забыл, исправил в своем посте

Автор - krosav4ig
Дата добавления - 07.05.2019 в 04:18
t330 Дата: Вторник, 07.05.2019, 13:17 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 98
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Спасибо, заработало!
 
Ответить
СообщениеСпасибо, заработало!

Автор - t330
Дата добавления - 07.05.2019 в 13:17
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Получение сохраненных данных из реестра (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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