Hỏi cách lưu thay đổi thông tin trên Form Add-in (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

cartoon18

Thành viên chính thức
Tham gia
11/1/12
Bài viết
56
Được thích
2
- Em có tạo một Add-in gồm Form như sau:
1) 1 Button là nút thay đổi thông tin đường dẫn, 1 Textbox là nơi hiển thị đường dẫn, 1 Checkbox.
Thao tác: Bấm nút => chọn đường dẫn => đường dẫn sẽ hiện trong Textbox => rồi chọn CheckBox là lưu => tắt Excel đi và mở lại
Yêu cầu: Em muốn hỏi là có cách nào sau khi thao tác như trên khi mở lại Add-in thì đường dẫn trong Textbox vẫn sẽ lưu lại không ah.
2) tương tự như trên em cũng có 2 checkBox trong Form và muốn lưu lại thay đổi chọn CceckBox sau khi tắt và mở lại Excel.
%#^#$ các bác giúp em với ah , em chân thành cảm ơn
Ps: hồi trước em nhớ có đọc 1 bài của Thầy NDU về cách lưu lại checkBox trên Add-in thì phải nhưng mà em tìm hoài ko thấy nên mới viết bài mới đấy ah.
 

File đính kèm

Lần chỉnh sửa cuối:
- Em có tạo một Add-in gồm Form như sau:
1) 1 Button là nút thay đổi thông tin đường dẫn, 1 Textbox là nơi hiển thị đường dẫn, 1 Checkbox.
Thao tác: Bấm nút => chọn đường dẫn => đường dẫn sẽ hiện trong Textbox => rồi chọn CheckBox là lưu => tắt Excel đi và mở lại
Yêu cầu: Em muốn hỏi là có cách nào sau khi thao tác như trên khi mở lại Add-in thì đường dẫn trong Textbox vẫn sẽ lưu lại không ah.
2) tương tự như trên em cũng có 2 checkBox trong Form và muốn lưu lại thay đổi chọn CceckBox sau khi tắt và mở lại Excel.
%#^#$ các bác giúp em với ah , em chân thành cảm ơn
Ps: hồi trước em nhớ có đọc 1 bài của Thầy NDU về cách lưu lại checkBox trên Add-in thì phải nhưng mà em tìm hoài ko thấy nên mới viết bài mới đấy ah.
Bạn thử thay code trong Form của bạn bằng code này xem sao.
Mã:
Private Sub CommandButton1_Click()
On Error GoTo Thoat
        With Application.FileDialog(msoFileDialogFolderPicker)
            .Show
            TextBox1.Value = .SelectedItems(1)
        End With
Thoat:
    Exit Sub
End Sub


Private Sub OptionButton1_Change()
    If OptionButton2.Value = True Then
        CommandButton1.Caption = "Duong Dan"
    Else
        CommandButton1.Caption = "Path"
    End If
End Sub


Private Sub UserForm_Activate()
 TextBox1.Value = Sheet1.Range("A1").Value
If Sheet1.Range("A2").Value Then
    CheckBox1.Value = True
Else
    CheckBox1.Value = False
End If
If Sheet1.Range("A3").Value Then
   OptionButton1.Value = True
   CommandButton1.Caption = "Path"
Else
   OptionButton2.Value = True
   CommandButton1.Caption = "Duong dan"
End If
End Sub


Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Sheet1.Range("A1").Value = TextBox1.Value
Sheet1.Range("A2").Value = CheckBox1.Value
If OptionButton1.Value Then
   Sheet1.Range("A3").Value = True
Else
   Sheet1.Range("A3").Value = False
End If
ThisWorkbook.Save
End Sub
 
Upvote 0
Bạn thêm vào đoạn code sau:
Mã:
Private Sub UserForm_Initialize()
   On Error Resume Next
    Me.CheckBox1 = GetSetting("MyProgram", "FormSettings", "Checkbox1")
    Me.TextBox1 = GetSetting("MyProgram", "FormSettings", "Textbox1")
    For i = 1 To 2
       Me.Controls("OptionButton" & i).Value = _
          CBool(GetSetting("MyProgram", "FormSettings", "Option" & i))
        Next
End Sub


Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    SaveSetting "MyProgram", "FormSettings", "Checkbox1", Me.CheckBox1
    SaveSetting "MyProgram", "FormSettings", "Textbox1", Me.TextBox1
    For i = 1 To 2
         SaveSetting "MyProgram", "FormSettings", _
                    "Option" & i, Me.Controls("OptionButton" & i).Value
    Next
End Sub
 
Upvote 0
cảm ơn hai bác đã giúp, tuy nhiên cách của bác hhoang_56 em đọc không hiểu lắm :., (em thấy mấy lệnh "GetSetting", "SaveSetting" ....), bác có thể giải thích giúp em được không ah. em cảm ơn nhìu }}}}}
 
Upvote 0
cảm ơn hai bác đã giúp, tuy nhiên cách của bác hhoang_56 em đọc không hiểu lắm :., (em thấy mấy lệnh "GetSetting", "SaveSetting" ....), bác có thể giải thích giúp em được không ah. em cảm ơn nhìu }}}}}
Lệnh SaveSetting để lưu giá trị vào Regedit đó bạn, còn lệnh GetSetting dùng để đọc giá trị được lưu trong Regedit bằng lệnh SaveSetting ở trên. Cách làm ở #2 là lưu thông tin vào chính Add-Ins luôn, còn cách làm ở #3 thì lưu vào Regedit của máy tính.
 
Upvote 0
Lệnh SaveSetting để lưu giá trị vào Regedit đó bạn, còn lệnh GetSetting dùng để đọc giá trị được lưu trong Regedit bằng lệnh SaveSetting ở trên. Cách làm ở #2 là lưu thông tin vào chính Add-Ins luôn, còn cách làm ở #3 thì lưu vào Regedit của máy tính.

Có sự nhầm lẫn
Registry chứ không phải Regedit

 
Upvote 0

Bài viết mới nhất

Back
Top Bottom