2016-09-21 135 views
1

我有一個包含大量頁面的單詞文檔,並且在每個步驟後有一個控制複選框ActiveXWord中的VBA複選框

在文檔的末尾有一個完成表,它具有部分的名稱,當某個部分的最後一個複選框被選中時,它將該部分表格變爲綠色。

因此,對於一個示例:

第1節:

文本

(複選框1)

moretext

(複選框2)

evenmoretext

(複選框3)

完成列表:

第1

我想實現是有一些VBA,將檢查,看看是否所有的複選框被選中,然後進行第一部分在最後綠色的桌子上。

我目前有它的工作,所以它變成綠色,但只有當最後一個複選框(3)被選中。

有沒有辦法做到這一點?

還有另外一個問題:我在文檔的頂部有一個按鈕,它隱藏了整個文檔中的幾個部分,當按下時,它會檢查它將首先隱藏的任何複選框。 (我使用分頁符來顯示哪些部分我想隱藏)

這是一個問題,但是因爲ActiveX複選框沒有隱藏,所以我寫了一些VBA而不是使它們超級小,然後調整它們之後的大小完成。

這裏是VBA我到目前爲止:

Private Sub DTSCheckBox_Click() 

    If (DTSCheckBox.Value = True And AdminCheckBox.Value = True) Then 
     Section2Complete.Caption = "Complete" 
     Section2Complete.BackColor = RGB(0, 255, 0) 
     CheckAndAmmendBy.Caption = UpgradeTechnic.Text 
    Else 
     Section2Complete.Caption = "Outstanding" 
     Section2Complete.BackColor = RGB(255, 0, 0) 
     CheckAndAmmendBy.Caption = "" 
    End If 

End Sub 

Private Sub V4ToV6Button_Click() 

    ActiveDocument.Sections(2).Range.Font.Hidden = True 
    ActiveDocument.Sections(4).Range.Font.Hidden = True 
    ActiveDocument.Sections(6).Range.Font.Hidden = True 
    ActiveDocument.Sections(8).Range.Font.Hidden = True 
    Section15Complete.Caption = "": Section15Complete.BackColor = RGB(255, 255, 255) 
    ActiveDocument.Tables(1).Rows(15).SetHeight 1, wdRowHeightExactly 
    SQLScriptCheckbox.Value = True 
    SQLScriptCheckbox.Height = 1 
    SQLScriptCheckbox.Width = 1 
    SQLScriptCheckbox.Enabled = False 
    RestoreEmailScriptCheckBox.Value = True 
    RestoreEmailScriptCheckBox.Height = 1 
    RestoreEmailScriptCheckBox.Width = 1 
    RestoreEmailScriptCheckBox.Enabled = False 
    SQLCleanScriptCheckBox.Value = True 
    SQLCleanScriptCheckBox.Height = 1 
    SQLCleanScriptCheckBox.Width = 1 
    SQLCleanScriptCheckBox.Enabled = False 
    SandboxJobHasBeenSetUpCheckBox.Value = True 
    SandboxJobHasBeenSetUpCheckBox.Width = 1 
    SandboxJobHasBeenSetUpCheckBox.Height = 1 
    SandboxJobHasBeenSetUpCheckBox.Enabled = False 

End Sub 

回答

1

我不能完全確定你的設計是什麼,但假設你有3個複選框,你要隱藏的部分,如果所有的三個檢查或(包括重新顯示該部分,如果用戶取消選中三個中的一個),我建議創建一個單獨的功能,在單擊任何時候複選框時更新該部分的格式:

Private Sub CheckBox21_Click() 
    UpdateSection 
End Sub 

Private Sub CheckBox22_Click() 
    UpdateSection 
End Sub 

Private Sub CheckBox23_Click() 
    UpdateSection 
End Sub 

Public Sub UpdateSection() 
    If CheckBox21.Value = True And CheckBox22.Value = True And CheckBox23.Value = True Then 
     'Code to hide section 
    Else 
     'Code to show section 
    End If 
End Sub 
+0

真棒男人,謝謝尋求幫助,這是一種享受! – Steve101

+0

@ Steve101如果這個答案適合你,你可以通過點擊綠色的選中標記來「接受」答案。 – Blackhawk