Board logo

標題: [發問] (已解答,G大謝謝)如何讓自訂表單關閉後暫存,開啟後繼續作業? [打印本頁]

作者: av8d    時間: 2012-6-14 13:20     標題: (已解答,G大謝謝)如何讓自訂表單關閉後暫存,開啟後繼續作業?

本帖最後由 av8d 於 2012-6-14 16:20 編輯

一般自訂表單關閉後~重新開啟~資料都會消失~
如何讓他可以暫存~該如何寫?
作者: GBKEE    時間: 2012-6-14 13:35

回復 1# av8d
表單.Hide   
Hide 方法   隱藏一個物件但不載出。
作者: dafa    時間: 2012-12-8 00:29

回復 2# GBKEE


  G大您好
  如果我想要我的表單以及表單內的按鈕、的Picture圖,在Excel關閉後再開啟,所有的Picture圖都還在
  請問要如何解決?
作者: GBKEE    時間: 2012-12-8 08:24

回復 3# dafa
Picture 須是已存檔
是這樣嗎?
  1. 'Initialize 事件 發生在一個物件載入後,但尚未顯示的時候。
  2. Private Sub UserForm_Initialize()   'UserForm的預設事件
  3.     UserForm1.Picture = LoadPicture("D:\EX1.GIF")
  4.     CommandButton1.Picture = LoadPicture("D:\EX2.GIF")
  5.     'CommandButton2.Picture = LoadPicture("D:\EX3.GIF")
  6.     'CommandButton3.Picture = LoadPicture("D:\EX4.GIF")
  7. End Sub
複製代碼

作者: dafa    時間: 2012-12-8 20:46

回復 4# GBKEE


    G大我也是用這個方法
   但還是不行附上我拼裝的檔案看有沒有其他的方法
   麻煩妳了
作者: GBKEE    時間: 2012-12-9 07:35

回復 5# dafa
按下表單按鈕 執行 sub 植物() 讀取 圖檔 正常
可以啊,為何不行!!
作者: dafa    時間: 2012-12-9 07:52

本帖最後由 dafa 於 2012-12-9 07:54 編輯

回復 6# GBKEE


    很抱歉可能是我解釋的不清楚(不擅表達)
          我讀檔都OK但只要Excel關閉,在次打開Excel我在按鈕挑選的圖就都變不見了
          我想要我再次打開Excel時能保留所有上次在按鈕上挑的圖
                                                                     再麻煩您了...........乾恩喔 ^^||
作者: c_c_lai    時間: 2012-12-9 07:53

回復 6# GBKEE
回復 1# av8d
回復 5# dafa
GBKEE 版大, 早安!
他們指的會是?
  1. Private Sub Workbook_Open()
  2.     '  For example purpose only.
  3. End Sub

  4. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  5.     '  For example purpose only.

  6.     Me.Save
  7. End Sub
複製代碼

作者: GBKEE    時間: 2012-12-9 11:41

回復 7# dafa
為何要那麼多的CommandButton?用何邏輯建立?
作者: dafa    時間: 2012-12-9 12:32

回復 9# GBKEE


    我的目的是要依Userform做底圖CommandButton點時可以挑選某些特定圖檔來拚出底圖
    CommandButton本身是一個一個貼上去的沒有跑程式
    如果那麼多的CommandButton做到一半沒做完不能存檔會很困擾
    我找了很久好像沒什麼方法可以存檔
    好像除非把所有CommandButton對應儲存格再存入對應的檔名才能解決
作者: GBKEE    時間: 2012-12-9 14:04

回復 10# dafa
須是你說的:把所有CommandButton對應儲存格再存入對應的檔名才能解決 檔名存於Sheets("工作表1")裡才能如你所願
請修改GW4501表單UserForm_Initialize程式碼 如下
  1. Option Explicit
  2. 'Public dw  'GW45011表單不須宣告: [Module1]模組已宣告過
  3. Public Sh As Worksheet   '須新加公用變數 [TheButton] 模組才可引用
  4. Dim ButtonClass() As New TheButton
  5. Private Sub UserForm_Initialize()
  6. Dim E As Control, i As Integer
  7. Dim hWnd, tPath, oo
  8. GW4501.Height = Sheets("工作表3").Cells(3, 7) / 5
  9. GW4501.Width = Sheets("工作表3").Cells(3, 2) / 5
  10. hWnd = GetForegroundWindow
  11. tPath = ActiveWorkbook.Path & "\底圖\"
  12. 'tPath = Application.GetOpenFilename("EXCE檔(*.XLS),*xls")'
  13. [c1] = tPath
  14. oo = Dir(tPath)
  15. If oo = "" Then
  16.     MsgBox "你底圖資料夾內沒放進圖檔"
  17.     End
  18. Else
  19.     [c2] = tPath & oo
  20.     GW4501.Picture = LoadPicture(tPath & oo)
  21. End If
  22. 'ButtonClass變數設定為 New TheButton物件類別模組
  23. Set Sh = Sheets("工作表1")   '工作表儲存圖表路徑
  24. With Sh
  25.     For Each E In Me.Controls
  26.         If InStr(E.Name, "CommandButton") Then
  27.             i = i + 1
  28.             ReDim Preserve ButtonClass(1 To i)
  29.             Set ButtonClass(i).Button = E     '指定 TheButton.Button(i) 的物件
  30.             '*** CommandButton對應儲存格再存入對應的檔名 ***
  31.             E.ControlTipText = Cells(i, "A").Address(0, 0) & ":"
  32.             If Dir(.Cells(i, "A").Text) <> "" Then
  33.                 E.Picture = LoadPicture(.Cells(i, "A").Text)
  34.                 E.ControlTipText = E.ControlTipText & .Cells(i, "A")
  35.                 'CommandButton的ControlTipText= .Cells(i, "A")的列名及內容(檔名)
  36.             End If
  37.         End If
  38.     Next
  39. End With
  40. End Sub
複製代碼
請修改TheButton模組內
  1. Option Explicit
  2. Public WithEvents Button As MSForms.CommandButton
  3. Private Sub Button_Click()
  4.     Dim S
  5.     S = Split(Button.ControlTipText, ":")
  6.     If S(1) = "" Then
  7.         Call 植物
  8.         Button.Picture = LoadPicture(dw)
  9.         Button.ControlTipText = Button.ControlTipText & dw
  10.         S = Split(Button.ControlTipText, ":")
  11.         GW4501.Sh.Range(S(0)) = dw
  12.          'CommandButton對應的儲存格存入: 檔名
  13.         dw = ""
  14.     End If
  15. End Sub
複製代碼

作者: dafa    時間: 2012-12-9 14:29

回復 11# GBKEE


    感謝G大不辭辛苦地幫我解答
     我目前上班中
     下班回家再試試看
      感恩喔~
作者: dafa    時間: 2012-12-10 00:18

回復 11# GBKEE


    感謝G大
     終於用好了
     但程式還要消化一下
     物件模組還是搞不懂使用時機還有好處在哪?
     為什麼物件模組那麼少見到人家在使用?
     還是謝謝你的熱心^^
作者: GBKEE    時間: 2012-12-10 07:46

本帖最後由 GBKEE 於 2012-12-10 07:52 編輯

回復 13# dafa
為什麼物件類別模組那麼少見到人家在使用
大多使用到大量的相同物件或是用程式碼建立的物件: 做同樣的功能,就不必在每一物件模組中寫下程式碼,
如果是 物件 是Sheet (工作表)或Workbook(活頁簿),那ThisWorkbook模組中 Workbook預設事件程式: 就是 該物件類別模組
作者: dafa    時間: 2012-12-11 00:37

回復 14# GBKEE


    感謝G大讓我又學到了
                                     謝謝~




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)