2015-09-08 56 views
0

我有涉及使用ActiveX複選框和組合框項目(使用Excel 2013)。組合框很好,但複選框在一些列上有鬼影。我可以看到它應該在哪裏的複選框(W列),但是當你點擊它時,它會消失並重新出現在U列;當我釋放鼠標按鈕時,它會顯示它應該再次出現的位置。例外是第一個複選框,它從一開始就顯示在U列中,並且實際上像它應該的那樣工作。的ActiveX複選框鬼,移動,調整大小

我可以手動選擇和「移動」他們回到他們屬於哪裏...基本上,我選擇所有,然後輕輕移動他們的邊上,然後回到他們應該是,他們會然後正常工作,直到下一次打開文檔(有時他們保持放置並且正常工作,有時他們重複重影)。

我試圖刪除其他地方建議.xld文件,沒有工作。我無法找到一個'excel11'文件,正如有人建議的,我試過這個:How to fix activeX checkboxes moving when opening file,也無濟於事。我真的被困住了,這是一個相當複雜的項目,其中大約有20個這樣的電子表格,並且他們已經工作了三年,現在開始這樣做。

所以我難倒超越沮喪,因爲我其實帶來的變化,使做工精細,當這些複選框做他們應該做的事情。任何建議將不勝感激。

回答

0

「修復它爲我」下載在固定的這個問題,我下面的鏈接。 https://support.microsoft.com/en-us/kb/2598310

+0

這似乎只,我用2013適用於2010 ...我想反正運行它,它告訴我,它並不適用於我的版本。我一直在四處尋找是否有2013年的東西可用,但還沒有... –

0

我試圖建立一個左: 對於每個OBJ在Sheet1.OLEObjects

If (TypeOf obj.Object Is MSForms.CheckBox) And (Left(obj.Name, 8) = OpChxBox) Then 
     obj.Object.AutoSize = False 
     obj.Top = Rows(CInt(Right(obj.Name, 2)) + 3).Top 
     obj.Height = Rows(CInt(Right(obj.Name, 2)) + 3).Height 
     obj.Width = Rows(CInt(Right(obj.Name, 2)) + 3).Height 
     obj.Left = (Columns("W").Left + Columns("X").Left - obj.Width/2)/2 
    End If 

IF,讓你的我想要的要點。我發誓以前我曾嘗試過這種方式,但它似乎在這個時刻起作用......歷史告訴我它不會持續下去,所以如果任何人有任何其他想法,我會很感激。