我建立了一个用于进行简单过滤器搜索的用户表单。选择任何工作表后,我可以打开表单并进行过滤。但是,当我从用户窗体使用清除按钮但不在筛选条件工作表(Sheet1)上时,对于第一条select语句,出现“ 1004:选择范围类的选择方法失败”错误。
Sub Clear()
'
' Clear Macro
'
Sheet1.Range("A2:H2").Select
Selection.ClearContents
Sheet1.Range("A5:H1725").Select
Selection.ClearContents
Sheet1.Range("A2").Select
End Sub
我被迫打开过滤器纸还是我的代码无法正常工作?我想要一个带有打开表单按钮的工作表,其中隐藏了数据(Sheet2)和过滤条件(Sheet1)。
在cmdClear_click()上,我在运行Clear之前调用它:
Private Sub ClearForm()
'
'clear values
With Me
.txtCustId = ""
.txtCustName = ""
.txtAddress = ""
.txtCity = ""
.txtState = ""
.txtZip = ""
.txtCountry = ""
.txtStatus = ""
End With
End Sub
我唯一想到的可能就是搞砸了我...
答案 0 :(得分:2)
.Select
仅在您位于指定工作表上时才有效,在代码中使用Sheet1(..).Select
意味着您在Sheet1上选择了某些内容,如果您在其他工作表/选项卡上,它将失败。为了避免这种情况,您必须避免使用“选择”。
没有选择的结果相同:
Sub Clear()
'
' Clear Macro
With ThisWorkbook
'Replace "Sheet1" if you have renamed your Sheet to something else
.Sheets("Sheet1").Range("A2:H2").ClearContents
.Sheets("Sheet1").Range("A5:H1725").ClearContents
End With
End Sub