寻找帮助编写VB脚本的任何指导
在Excel中,我们有一个包含A列中文件名的列
" Y:\主文档\同种异体\ DP \ ABO \标签\ 100毫克\ 4.packaging \同种异体制表为100mg-DP-9-PP-moa- [ABO-PR-ANL-0685 -ver4.0] .PDF" " Y:\主文档\同种异体\ DP \ ABO \标签\ 100毫克\ 4.packaging \ ZZ-归档\测试外形00mg-DP-XXX-测试 - [测试文件] -01.01.1900 .DOCX"
SHEETNAME =文件
想要复制到sheetname =当前是字符串" zz-archive"不包含在单元格中,否则移至Sheetname = Archive。
我们使用了公式,但它会留下空行。
任何帮助非常感谢 谢谢 加里
答案 0 :(得分:1)
如果仍然可以使用基于公式的解决方案,那么Current!A2中的数组公式应该有效。
=IFERROR(INDEX(Files!$A$2:$A$99,MATCH(0, IF(LEN(Files!$A$2:$A$99),IF(ISERROR(SEARCH("zz-archive",Files!$A$2:$A$99)),COUNTIF(A$1:A1,Files!$A$2:$A$99),1),1),0)),"")
它需要在A2中,因为非涉及的单元需要高于它以避免循环引用。作为数组公式,它需要 Ctrl + Shift + Enter 而不是简单地输入。一旦输入正确,可以根据需要填写,以捕获所有可能的回报。
附录:要在Archive!A2中使用相同的公式,请将ISERROR
更改为ISNUMBER
。
答案 1 :(得分:1)
这是一个VBA解决方案,可将过滤后的数据复制到每个当前和存档工作表。
Sub categorize_filesnames()
Dim ws As Worksheet, wsa As Worksheet, wsc As Worksheet
Set ws = Sheets("Files")
Set wsc = Sheets("Current")
Set wsa = Sheets("Archive")
wsa.Cells(1, 1).CurrentRegion.Offset(1, 0).ClearContents
wsc.Cells(1, 1).CurrentRegion.Offset(1, 0).ClearContents
With ws.Cells(1, 1).CurrentRegion
.AutoFilter
.AutoFilter Field:=1, Criteria1:="=*zz-archive*"
.Offset(1, 0).Copy Destination:=wsa.Cells(2, 1)
.AutoFilter Field:=1, Criteria1:="<>*zz-archive*"
.Offset(1, 0).Copy Destination:=wsc.Cells(2, 1)
.AutoFilter
End With
Set wsc = Nothing
Set wsa = Nothing
Set ws = Nothing
End Sub