excel - 如何使用另一个文件中的代码从文件中删除所有过滤器?
问题描述
我正在尝试从文件中删除所有过滤器TestA.xlsx
。
有时过滤器在TestA.xlsx
. 如果您TestB
之后打开,并非所有数据都被复制到 file TestB
。
因此,它的工作原理是,如果“文件 A”打开并且您打开“文件 B”,“文件 B”会检查“文件 A”是否处于活动状态。如果它处于活动状态,它会将工作表 TestA 中的“文件 A”中的所有内容复制到工作表中的“文件 B” TestB
。
Private Sub Workbook_Open()
Dim WB As Workbook
On Error Resume Next
Set WB = Workbooks("Test.xlsx")
If Err Then
MsgBox "Test" & vbNewLine & "" & vbNewLine & "" & "Test" & vbNewLine & "" & vbNewLine & "Test" & vbNewLine & "" & vbNewLine & "Test"
'ThisWorkbook.Close
End If
Workbooks("TestA.xlsx").Worksheets("TestA").ShowAllData
Workbooks("TestA.xlsx").Worksheets("TestA").Range("A2:AF666").Copy _
Workbooks("TestB.xlsm").Worksheets("TestB").Range("A2")
Worksheets("TestC").Range("A1").AutoFilter Field:=1, Criteria1:="JA"
Workbooks("TestB.xlsm").Worksheets("TestB").Range("B2:AF666").Copy _
Workbooks("TestB.xlsm").Worksheets("TestC").Range("B2")
On Error GoTo 0
End Sub
解决方案
删除过滤器
Option Explicit
Private Sub Workbook_Open()
Const swbName As String = "TestA.xlsx"
Const sName As String = "TestA"
Const dName As String = "TestB"
Const d2Name As String = "TestC"
If Not isWorkbookOpen(sName) Then
MsgBox "The workbook '" & sName & "' is not open."
Exit Sub
End If
Dim sws As Worksheet: Set sws = Workbooks(swbName).Worksheets(sName)
Dim dws As Worksheet: Set dws = ThisWorkbook.Worksheets(dName)
Dim dws2 As Worksheet: Set dws2 = ThisWorkbook.Worksheets(d2Name)
If sws.AutoFilterMode Then
sws.AutoFilterMode = False
End If
sws.Range("A2:AF666").Copy dws.Range("A2")
dws2.Range("A1").AutoFilter Field:=1, Criteria1:="JA"
' This makes no sense, you cannot copy to a non-contiguous range.
'dws.Range("B2:AF666").Copy dw2.Range("B2")
End Sub
Function isWorkbookOpen( _
ByVal FileName As String) _
As Boolean
On Error Resume Next
Dim wb As Workbook: Set ws = Workbooks(FileName)
On Error GoTo 0
isWorkbookOpen = Not wb Is Nothing
End Function
推荐阅读
- r - R Markdown 中的 LaTeX {itemize}
- javascript - 寻找活动模型序列化器,如 Sequelize 的嵌套关联输出
- haskell - 在haskell中处理无效状态
- android - 如何在 Flutter 中查看实时可处理的图像?
- react-native - 如何在抽屉导航器中添加箭头返回按钮以在打开抽屉时关闭抽屉
- python - 当“运行时断开”时,Google-Colab 是否继续运行脚本?
- certificate - 将二进制私钥转换为 pem 格式
- python-3.x - 如何将样式应用于烧瓶中生成的 html 页面
- c++ - 是否可以使用 `std::copy` 将值从可变大小的数组复制到容器?
- runtime-error - 如何解决运行时错误:TypeError:无法读取未定义的属性“准备好”?