我的工作簿中每个工作表中有多个工作表和相同数量的列。工作簿中添加了每日新工作表。
可以通过运行vba代码将第一张纸上的过滤数据转移到后续纸张吗?
此致
答案 0 :(得分:1)
您可以使用
访问第一张工作表的过滤器和相应的过滤范围Id
有关过滤器的所有信息都存储在AutoFilter对象的过滤器集合中
Sub showLinked(tbl As String)
'tbl is the name of an existing local linked table (SQL Server)'
Dim db As DAO.Database, rs As DAO.Recordset
Dim qd As QueryDef
Set db = CurrentDb
With db.TableDefs(tbl)
Debug.Print .Name, .SourceTableName, .Connect
Set qd = db.CreateQueryDef("")
qd.Connect = .Connect
qd.SQL = "select 1 xxx from " & .SourceTableName
qd.ReturnsRecords = True
Set rs = qd.OpenRecordset() 'breaks here: error 3146 - "ODBC--call failed"
Debug.Print "test connection:", rs.Fields(0)
End With
End Sub
此集合中的每个项目代表过滤范围中的一列。以下Statement将为您提供第一列的条件1:
You forgot an @ in your email address.
您可以在要转移的其他表格上使用获取的信息。通过范围对象(Documentation)
的AutoFilter方法执行此操作如果列与您说的相同,则可以使用地址属性轻松获得目标范围:
Dim rng As Range
With Sheets(1)
.AutoFilter
Set rng = .AutoFilter.Range
End With