Отзыв позиции пользователя - PullRequest
0 голосов
/ 20 февраля 2020

Не удалось найти много примеров в inte rnet и абсолютно ничего на форуме относительно сохранения позиции пользовательской формы для перезагрузки.

Этот макрос встречается на нескольких сайтах:

Copy to clipboard
Option Explicit

Private Sub UserForm_Initialize()
If GetSetting("My Settings Folder", Me.Name, "Left Position") = "" _
    And GetSetting("My Settings Folder", Me.Name, "Top Position") = "" Then
    Me.StartUpPosition = 1 ' CenterOwner
Else
    Me.Left = GetSetting("My Settings Folder", Me.Name, "Left Position")
    Me.Top = GetSetting("My Settings Folder", Me.Name, "Top Position")
End If

End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    SaveSetting "My Settings Folder", Me.Name, "Left Position", Me.Left
    SaveSetting "My Settings Folder", Me.Name, "Top Position", Me.Top
End Sub

Однако ... здесь это не работает.

Что я делаю не так?

1 Ответ

0 голосов
/ 20 февраля 2020

Ответ был очень очевиден ... за исключением того, что я пропустил его, и несколько примеров в inte rnet не упомянули об этом:

StartUpPosition пользовательской формы должно быть установлено в "0" (ноль) ). Вот отредактированный макрос:

Private Sub UserForm_Initialize()
    If GetSetting("My Settings Folder", Me.Name, "Left Position") = "" _
        And GetSetting("My Settings Folder", Me.Name, "Top Position") = "" Then
        Me.StartUpPosition = 1 ' CenterOwner
    Else
        Me.StartUpPosition = 0
        Me.Left = GetSetting("My Settings Folder", Me.Name, "Left Position")
        Me.Top = GetSetting("My Settings Folder", Me.Name, "Top Position")
    End If

End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    SaveSetting "My Settings Folder", Me.Name, "Left Position", Me.Left
    SaveSetting "My Settings Folder", Me.Name, "Top Position", Me.Top
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...