我基本上试图将一个宏分配给一个命令按钮,该按钮清除某些单元格以及活动工作表上的一些组合框和复选框,但无法使我的宏/命令成功运行。请帮忙!非常感谢。到目前为止,我的代码看起来像这样:
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 :(得分:1)
尝试
Sheet4.ComboBox4.Value = ""
同样作为一般提示,而不是使用像:
这样的选择range("A1").select
selection.clearcontents
您可以组合这些行,并告诉它直接清除内容:
range("A1").clearcontents
答案 1 :(得分:1)
我设置了一个名为 ClearRng 的范围,它包含要清除内容的所有单元格。
此外,代码循环遍历“ Sheet4 ”中的所有OLEObjects
,并检查它们是否为ComboBox
类型,如果它们清除了它的内容。
(此代码适用于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
的内容,使用Sheet4对象类型,然后使用以下代码:
With Sheet4.ComboBox4
.Clear
End With