不知道大家是否有與我相同的困擾,就是設定了也不會做動😖😖
例如在表單上設置了一個COMBOBOX的物件也設定了SETFOCUS,但沒反應就是沒反應!!!!
用UserForm1.ComboBox1.SetFocus 無效 XD
在拜讀此篇Re-Focusing on an Excel Userform ComboBox討論後,以以下CODE 測試成功:
with UserForm1.ComboBox1
.Visible = False '設定為不可使用
.Visible = True '設定為可使用
.setfocus '設定"閃爍 OR 稱焦點也行
end with
在每一次載入表單時,可以將控制權丟到COMBOBOX上或是TEXTBOX上也行,倘若真的不行,還有另外一段CODE,我幫忙補上中文註解:
Sub Focus_ControlOfUserForm(ByRef Obj As Object) 'from the Userform, call Focus_ControlOfUserForm(Me)
Dim ctl As Control
With Obj
Set ctl = .ActiveControl '設定物件別
If TypeName(ctl) = "MultiPage" Or TypeName(ctl) = "Frame" Then '判斷物件種類
Set ctl = ctl.SelectedItem.ActiveControl.Name '重新設定物件別
End If
With ctl
Dim Af As Boolean
With Application
Af = .ScreenUpdating
.ScreenUpdating = False
End With
'.SetFocus
.Visible = False
.Visible = True
.SetFocus
If Af Then Application.ScreenUpdating = True '開啟螢幕更新
End With
End With
End Sub
簡單說明一下,這個副程式透過物件別判斷後,做焦點設定,因為特定物件不支援"焦點";另外關鍵在Application.ScreenUpdating這個控制上,因為有時候物件未自動更新導致的。
沒有留言:
張貼留言