2016-09-22 8 views
1

私は基本的に特定のセルをクリアするコマンドボタンにマクロを割り当てようとしていますが、アクティブなシート上のコンボボックスとチェックボックスをクリアしますが、マクロ/ 。助けてください!これは非常に感謝します。私のコードは、これまでのようになります。あなたはこれらの行を結合し、ちょうど伝えることができVBA Excelマクロすべてのコンボボックスとチェックボックスをクリアする

range("A1").select 
selection.clearcontents 

Sub Macro4() 

Sheet4.Select 
Range("B3").Select 
Selection.ClearContents 
Range("B4").Select 
Selection.ClearContents 
Range("C13").Select 
Selection.ClearContents 
Range("C14").Select 
Selection.ClearContents 
Range("F8").Select 
Selection.ClearContents 
Range("J8").Select 
Selection.ClearContents 
Range("B23").Select 
Selection.ClearContents 
Range("J3").Select 
Selection.ClearContents 
Range("G4").Select 
Selection.ClearContents 
Sheet4.ComboBox4.Select 
ComboBox4 = "" 

End Sub 
+0

は、フォームコントロールまたはActiveXコントロールのコンボボックスですか? –

+0

フォームコントロールであれば、DropBox4と思ったでしょうか? – jamheadart

答えて

1

ではなく、のような選択を使用しての、一般的なヒントとしても

Sheet4.ComboBox4.Value = "" 

をお試しください内容を直接クリアする:

range("A1").clearcontents 
1

私はClearRngという名前の範囲を設定します。これは、内容を消去したいすべてのセルで構成されています。彼らはComboBoxタイプである場合、彼らはそれからコンテンツをクリアしている場合

また、コードは、すべての「シート4」でOLEObjects、およびチェックをループ。

(このコードはActiveX Controls、ないUser_Form Controlsに意図されている)

Option Explicit 

Sub Macro4() 

Dim Sht     As Worksheet 
Dim ClearRng   As Range 
Dim Obj     As OLEObject 

' set Sht variable to "Sheet4" 
Set Sht = ThisWorkbook.Sheets("Sheet4") 

' set all the cells you want to clear in one Range 
Set ClearRng = Sht.Range("B3,B4,C13,C14,F8,J8,B23,J3,G4") 

ClearRng.ClearContents  

' loop thourgh all OLE objects in "Sheet4" 
For Each Obj In Sht.OLEObjects 
    ' for debug > check name if ActiveX Control 
    Debug.Print Obj.Name 

    ' if OLE Object is type ComboBox 
    If Obj.progID = "Forms.ComboBox.1" Then 
     Obj.ListFillRange = "" ' clear all contents of the ComboBox 
    End If 

End Sub 

オプション2:ComboBoxの内容をクリアするために、シート4のオブジェクト・タイプを使用し、その後、以下のコードを使用:

With Sheet4.ComboBox4 
    .Clear 
End With 
関連する問題