vba中也可以使用窗體。
在窗體的設(shè)計狀態(tài)下,可以添加各種控件。
有時候我們希望通過vba代碼在窗體中動態(tài)的添加控件,而不是事先在窗體中添加控件再寫代碼。
在vba中可以使用UserForm對象的Controls.Add方法動態(tài)添加控件,它的語法如下:
Set Control = object.Add( ProgID [, Name [, Visible]])
其中ProgID參數(shù)為要添加的控件的程序標(biāo)識符,Name參數(shù)為要添加的控件的名稱, Visible參數(shù)設(shè)置該控件是否可見。
常見的控件的ProgID如下:
CheckBox | Forms.CheckBox.1 |
ComboBox | Forms.ComboBox.1 |
CommandButton | Forms.CommandButton.1 |
Frame | Forms.Frame.1 |
Image | Forms.Image.1 |
Label | Forms.Label.1 |
ListBox | Forms.ListBox.1 |
MultiPage | Forms.MultiPage.1 |
OptionButton | Forms.OptionButton.1 |
ScrollBar | Forms.ScrollBar.1 |
SpinButton | Forms.SpinButton.1 |
TabStrip | Forms.TabStrip.1 |
TextBox | Forms.TextBox.1 |
ToggleButton | Forms.ToggleButton.1 |
如下的代碼將在用戶窗體UserForm1中添加10個標(biāo)簽控件和10個文本框控件:
Sub AddControlsDynamically()
Dim oLB As Control
Dim oTextBox As Control
Dim oCombox As Control
With UserForm1
For i = 1 To 10
'添加標(biāo)簽控件
Set oLB = .Controls.Add("Forms.Label.1", "LB" & i, True)
With oLB
.Caption = "第" & i & "個標(biāo)簽"
.Left = 50
.Top = 30 + (i - 1) * 40
End With
'添加文本框控件
Set oTextBox = .Controls.Add("Forms.TextBox.1", "Txt" & i, True)
With oTextBox
.Left = 50 + 100
.Top = 30 + (i - 1) * 40
.Width = 300
.Height = 30
End With
Next i
.Show
End With
End Sub
如下圖所示,其中兩個命令按鈕是在設(shè)計狀態(tài)下添加的。
當(dāng)控件是在vba代碼的運行階段動態(tài)添加的,如果要訪問控件的內(nèi)容,需要用如下的加感嘆號的引用形式:
userform1!thebox.text
比如要讀取上圖中的第一個文本框的內(nèi)容,可以使用如下的代碼:
MsgBox UserForm1!Txt1.Text
其中Txt1為動態(tài)添加文本框時指定的名稱。
在使用Windows 10的過程中,有時會遇到Edge或IE瀏覽器網(wǎng)絡(luò)訪問全無反應(yīng)的異常情況,這種情況往往是由于緩沖問題、插件問題,甚至是其他軟件的干擾造成的,要全面排查才能解決。
1. 緩存造成的瀏覽器假死
瀏覽器長時間使用未清理,因緩存問題造成的假死現(xiàn)象常有發(fā)生。按下述圖示步驟進行操作,可解除因緩存問題造成的瀏覽器假死。
右鍵單擊開始按鈕并選擇“控制面板”,將查看方式切換到“小圖標(biāo)”模式,點擊窗口中的“Internet選項”。
進入“Internet選項”窗口,點擊“常規(guī)”選項卡下“瀏覽歷史記錄”組中的“刪除”按鈕。
在下級窗口列表中選中“臨時Internet文件和網(wǎng)站文件”、“Cookie和網(wǎng)站數(shù)據(jù)”、“歷史記錄”三項,點擊“刪除”按鈕。
右擊開始按鈕并選擇進入命令提示符(管理員)窗口,運行“NETSH WINSOCK RESET”命令。
2. Flash插件造成瀏覽器假死
Flash插件不合適也是造成瀏覽器假死的一個重要原因??赏ㄟ^下面的方法來解決。
在IE中按下Alt+X組合鍵顯示“工具”菜單,選擇“安全→ActiveX篩選”命令,這種方法只適合于IE瀏覽器(圖5)。此外,還可通過IE工具菜單下的“管理加載項”進入加載項管理窗口,選擇控件“Shockwave Flash Object”,點擊右下方“禁用”,再點擊“關(guān)閉”(圖6),它針對所有瀏覽器發(fā)生作用。這樣,由此插件引起的所有瀏覽器的假死問題就都解決了。
此外,還可以完整卸載Adobe Flash Player插件后重新安裝。由于Adobe Flash Player卸載快捷方式不會出現(xiàn)在系統(tǒng)“程序和功能”窗口,所以需要尋找專用卸載工具。通過百度搜索“uninstall flash player”,找到并下載該工具后,借助該文件的“屬性”窗口顯示“詳細信息”,從版權(quán)處確認(rèn)其為Adobe官方卸載程序,即可放心地用該程序卸載Flash插件了。之后,再到Adobe官方網(wǎng)站下載安裝最新版即可。
3. 排除其他軟件的干擾
如果在排查了以上兩種原因后仍未能解決,則可以從系統(tǒng)中安裝的第三方軟件沖突方面考慮,并著手解決。這時,可先使用純凈系統(tǒng)啟動模式啟動系統(tǒng),然后逐個排查。具體方法如下:
按下Win+R啟動“運行”窗口,輸入MSCONFIG命令運行,打開系統(tǒng)配置窗口,點擊“服務(wù)”選項卡,勾選“隱藏所有的Microsoft服務(wù)”復(fù)選框,然后點擊“全部禁用”按鈕(圖7)。接著點擊“啟動”選項卡,點擊“打開任務(wù)管理器”,然后禁用全部啟動項并確定(圖8)。最后重啟電腦。
系統(tǒng)啟動后,若瀏覽器的使用均恢復(fù)正常,那么可著手一一啟動其他應(yīng)用程序后測試瀏覽器的啟動情況,若某種軟件運行后再啟動瀏覽器又出現(xiàn)問題,則可證明是該軟件與瀏覽器發(fā)生沖突,徹底卸載該軟件即可解決問題。