VBA 除非符合过滤条件,否则清除宏不起作用 Sheet
VBA Clear Macro Not Working Unless on Filter Criteria Sheet
我构建了一个用户表单来进行简单的过滤搜索。我可以在 select 编辑任何工作 sheet 时打开表格并进行过滤。但是,当我使用用户表单中的清除按钮但我不在过滤条件工作 sheet (Sheet1) 上时,我收到“1004:Select 范围方法 class 失败”错误对于第一个 select 语句。
Sub Clear()
'
' Clear Macro
'
Sheet1.Range("A2:H2").Select
Selection.ClearContents
Sheet1.Range("A5:H1725").Select
Selection.ClearContents
Sheet1.Range("A2").Select
End Sub
我是被迫打开过滤器 sheet 还是我的代码无法正常工作?我想要一个 sheet 打开表单按钮,隐藏数据 (Sheet2) 和过滤条件 (Sheet1)。
On cmdClear_click() 我在 运行 之前调用这个 清除:
Private Sub ClearForm()
'
'clear values
With Me
.txtCustId = ""
.txtCustName = ""
.txtAddress = ""
.txtCity = ""
.txtState = ""
.txtZip = ""
.txtCountry = ""
.txtStatus = ""
End With
End Sub
我能想到的唯一可能搞砸的就是我....
.Select
仅当您位于指定的 Sheet 时才有效,在您的代码中您使用 Sheet1(..).Select
意味着您正在选择 Sheet1 上的内容,如果你在另一个 Sheet/Tab 上它会失败。为避免这种情况,您必须避免使用 Select.
没有 Select 的相同结果:
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
我构建了一个用户表单来进行简单的过滤搜索。我可以在 select 编辑任何工作 sheet 时打开表格并进行过滤。但是,当我使用用户表单中的清除按钮但我不在过滤条件工作 sheet (Sheet1) 上时,我收到“1004:Select 范围方法 class 失败”错误对于第一个 select 语句。
Sub Clear()
'
' Clear Macro
'
Sheet1.Range("A2:H2").Select
Selection.ClearContents
Sheet1.Range("A5:H1725").Select
Selection.ClearContents
Sheet1.Range("A2").Select
End Sub
我是被迫打开过滤器 sheet 还是我的代码无法正常工作?我想要一个 sheet 打开表单按钮,隐藏数据 (Sheet2) 和过滤条件 (Sheet1)。
On cmdClear_click() 我在 运行 之前调用这个 清除:
Private Sub ClearForm()
'
'clear values
With Me
.txtCustId = ""
.txtCustName = ""
.txtAddress = ""
.txtCity = ""
.txtState = ""
.txtZip = ""
.txtCountry = ""
.txtStatus = ""
End With
End Sub
我能想到的唯一可能搞砸的就是我....
.Select
仅当您位于指定的 Sheet 时才有效,在您的代码中您使用 Sheet1(..).Select
意味着您正在选择 Sheet1 上的内容,如果你在另一个 Sheet/Tab 上它会失败。为避免这种情况,您必须避免使用 Select.
没有 Select 的相同结果:
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