在不同的表上使用一个宏,分别为
目标在不同的表上使用一个宏,分别为
一个按钮,用于根据单元格值对表执行自动筛选。
问题
当复制片,宏指表上的原始片。
目前代码
Sub Macro1() ActiveSheet.ListObjects("Table33").Range.AutoFilter Field:=6, Criteria1:=">" & Range("K9").Value
End Sub
是否有以相对的方式分配表的方法吗?表格总是出现在同一个单元格中,一张张一张。
回答:
我有3个例子给你,第一个找到你指定单元格的表格。在这种情况下,您需要将TableName = ActiveSheet.Range("D6").ListObject.Name
中的D6
更改为表格内的单元格。找到表后,它在该表上运行过滤器。如果没有找到表格,所有3个示例都会抛出一个消息框,如果不需要,可以对其进行注释或删除。你应该能够将你的按钮绑定到3中的任何一个并使用它。
我发现代码找到表here并修改它以使用您提供的代码。
Sub RangeTable() Dim TableName As String
Dim ActiveTable As ListObject
'Determine if ActiveCell is inside a Table
On Error GoTo NoTableSelected
TableName = ActiveSheet.Range("D6").ListObject.Name 'Change range to cell inside of table
Set ActiveTable = ActiveSheet.ListObjects(TableName)
On Error GoTo 0
'Do something with your table variable (ie Add a row to the bottom of the ActiveTable)
ActiveTable.Range.AutoFilter Field:=6, Criteria1:=">" & Range("K9").Value
Exit Sub
'Error Handling
NoTableSelected:
MsgBox "There is no Table currently selected!", vbCritical
End Sub
下面的代码会看着你当前所选择的小区,找到与它关联的表,然后运行使用该表中的过滤器。
Sub ActiveTable() Dim SelectedCell As Range
Dim TableName As String
Dim ActiveTable As ListObject
Set SelectedCell = ActiveCell
'Determine if ActiveCell is inside a Table
On Error GoTo NoTableSelected
TableName = SelectedCell.ListObject.Name
Set ActiveTable = ActiveSheet.ListObjects(TableName)
On Error GoTo 0
'Do something with your table variable (ie Add a row to the bottom of the ActiveTable)
ActiveTable.Range.AutoFilter Field:=6, Criteria1:=">" & Range("K9").Value
Exit Sub
'Error Handling
NoTableSelected:
MsgBox "There is no Table currently selected!", vbCritical
End Sub
另一种方法是下面这只是运行上的ActiveSheet找到的第一个表中的过滤器,如果你只是有一个表,然后这应该工作正常的代码。有了这个,你不需要在运行它之前选择表格中的单元格,但是如果每张表格有多个表格,则可能需要使用上述代码。
Sub SheetTable() Dim TableName As String
Dim ActiveTable As ListObject
'Determine if ActiveCell is inside a Table
On Error GoTo NoTableSelected
TableName = ActiveSheet.ListObjects.Item(1)
Set ActiveTable = ActiveSheet.ListObjects(TableName)
On Error GoTo 0
'Do something with your table variable (ie Add a row to the bottom of the ActiveTable)
ActiveTable.Range.AutoFilter Field:=6, Criteria1:=">" & Range("K9").Value
Exit Sub
'Error Handling
NoTableSelected:
MsgBox "There is no Table currently selected!", vbCritical
End Sub
以上是 在不同的表上使用一个宏,分别为 的全部内容, 来源链接: utcz.com/qa/257824.html