標題:
[發問]
Excel VBA 自訂表單多重頁面問題
[打印本頁]
作者:
lichang
時間:
2015-9-21 23:16
標題:
Excel VBA 自訂表單多重頁面問題
請問各位大大一個小問題
我自訂了一個表單,是使用多重頁面的方式
我想要觸發表單1時,能夠啟動某個巨集
2時,能夠啟動某個巨集
以此類推
我想應該是跟click指令有關係,但我不知道前面是要怎麼寫
有人可以教一下嗎??
作者:
GBKEE
時間:
2015-9-22 16:34
回復
1#
lichang
不知你觸發表單的方式
下面的 UserForm (表單) 事件程式都可以執行你的巨集
Private Sub UserForm_Activate()
'表單變成現用表單視窗的時候,會發生 Activate 事件。
End Sub
Private Sub UserForm_Click()
'滑鼠左鍵按一下表單,則會發生 Click 事件。
End Sub
Private Sub UserForm_Initialize()
'Initialize 事件 發生在一個物件載入後 , 但尚未顯示的時候
End Sub
複製代碼
作者:
lichang
時間:
2015-9-22 22:55
回復
2#
GBKEE
請問如果是要觸發"多重頁面"的"第一分頁"或"第二分頁"時,要怎麼設定觸發條件??
作者:
lichang
時間:
2015-9-23 00:03
回復
2#
GBKEE
我試了一下語法,似乎可以呼叫!!
但目前問題在於畫面反而不會即時更新,請問該如何處理??
目前紅字部分不知道該如何修改,才能即時更新選定頁面內容!!
Private Sub MultiPage1_Change()
If MultiPage1.Value = 1 Then
Image_ZOrder
Else
MultiPage1.Value.Show
End If
End Sub
作者:
GBKEE
時間:
2015-9-23 06:27
回復
4#
lichang
但目前問題在於畫面反而不會即時更新,請問該如何處理??
可否附檔說明
你了解一下這 .Value .Visible 的屬性
Private Sub MultiPage1_Change()
MsgBox MultiPage1.Value
If MultiPage1.Value = 1 Then
Image_ZOrder
Else
MultiPage1.Visible = False
End If
End Sub
複製代碼
作者:
lichang
時間:
2015-9-25 09:23
回復
5#
GBKEE
大大,我有放附件上去,主要問題是,當我從第二分頁要切換回第一分頁時,無法顯示第一分頁
一定要再按一次"第二分頁"然後按回"第一分頁"才會顯示,請問為什麼??
[attach]22090[/attach]
作者:
GBKEE
時間:
2015-9-25 15:22
回復
6#
lichang
Private Sub MultiPage1_Change()
If MultiPage1.Value = 1 Then
Image_ZOrder '將程式控制權轉移 這 [Image_ZOrder]程序,
'須等這程式執行完畢,程式控制權才會回到這裡
'繼續 End If 下面的程式碼
'Image_ZOrder 執行期間, MultiPage1_Change的程式不會執行的
'所以異動兩次後才會回復
Else
'''程式碼
End If
'''End If後的程式碼
'''End If後的程式碼
End Sub
複製代碼
試試看
Dim Msg As Boolean, Form_Msg As Boolean
Private Sub MultiPage1_Change()
If MultiPage1.Value = 1 Then
Msg = True
Else
Msg = False
End If
End Sub
Private Sub UserForm_Activate()
Do While Form_Msg = False
DoEvents
If Msg = True And MultiPage1.Value = 1 Then
Image_ZOrder
End If
Loop
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Form_Msg = True
End Sub
Private Sub Image_ZOrder()
Dim Ar(), i As Integer, j As Integer, t As Date
Ar = Array(Image1, Image2, Image3)
t = Time
Do While Msg = True And MultiPage1.Value = 1 '執行這 Do Loop 的迴圈
DoEvents
'Sleep 1000
If t + #12:00:01 AM# <= Time Then '每秒一次,也可以不用 Sleep
Ar(i).ZOrder msoBringToFront
i = i + 1
If i > UBound(Ar) Then i = 0
t = Time
End If
Loop
End Sub
複製代碼
作者:
lichang
時間:
2015-9-26 23:43
謝謝大大您的提供,只差我不能給你個讚!!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)