我有幾個組合框(和列表框)和周圍寫了很多的VBA的工作簿。我在Workbook_Open過程中使用了相同的代碼來格式化它們幾個星期,沒有任何重大的麻煩。Excel的VBA組合框下拉按鈕大小 - 改變自身
昨晚我遠程的-desktopped到我的工作電腦(爲有史以來第二次)編輯代碼的其他一些地方(沒有什麼觸動了框屬性的話)。過了一段時間,所有盒子,列表和組合的格式變得瘋狂。列表框上的右側滾動條變得很大,並且在它們的底部也出現了巨大的滾動條。組合框上的下拉按鈕也變得非常大 - 就像盒子一樣寬。
我關閉並重新打開Excel和所有的箱子回到他們以前的幸福狀態,除了一,仍然有一個下拉按鈕一樣寬的框。我的vba格式代碼不起作用。重新啓動計算機不會有幫助。我比較了應該相同的兩個框的屬性窗口(名稱和左側位置除外),沒有什麼不同。
所以有反正我可以馴服,復位,或以其他方式控制這種叛徒下拉按鈕?我希望我甚至沒有在Excel中處理這種不可預知的行爲,但我被卡住了。
這裏是我的格式VBA:
With ThisWorkbook.Sheets(c_stMatrixSheet).OLEObjects(c_stMatrixTypeBox)
.Width = 120
.Top = 14
.Left = 878
Call FormatComboBox(.Object)
.Object.AddItem c_stAMatrix
.Object.AddItem c_stBMatrix
.Object.AddItem c_stCMatrix
.Object.Text = c_stAMatrix
End With
...
Private Sub FormatComboBox(bxComboBox As msforms.ComboBox)
With bxComboBox
.Clear
.Height = 19.5
.Font.Name = c_stDropBoxFont
.Font.Size = 10
.AutoSize = False
.Enabled = True
.Locked = False
.Placement = xlFreeFloating
End With
End Sub
現在我注意到,整個下拉框,當按下按鍵巨大,本身就是巨大的,或者巨大的寬,那是。文本的大小與普通框相同。行高很好。但是盒子超寬,它有一個巨大的右側滾動條。 – RomnieEE2 2012-03-01 14:35:24
這不好,但我想我有一個解決方法。首先,我使用autosize true格式化框。我想是兩次。隨着盒子變寬,按鈕在兩次傳球中變小。 (請注意,沒有任何文本的寬度與原始框的寬度相同。)然後將這些框的格式設置爲所需的寬度,並且autosize爲false。 – RomnieEE2 2012-03-01 14:47:24
同樣,在我的Workbook_Open方法中,我實際上必須運行我的格式組合框例程兩次,b/c列表框不會在第一遍中填充,而是在第2遍中執行。去搞清楚。我是否會詛咒Excel,vba或一般微軟? – RomnieEE2 2012-03-01 14:49:38