2014-10-29 48 views
0

寻找任何指导另一片帮忙写VB脚本运动细胞基于使用VB(EXCEL)文本字符串

在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 =文件

想要复制如果字符串“ZZ-档案”中的单元格不包含于SHEETNAME =电流,否则转移到SHEETNAME =存档。

我们使用的公式,但会留下空行。

任何帮助,不胜感激 感谢 加里

回答

1

如果基于公式的解决方案仍然是一个可能性,那么这数组公式在当前!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中,因为非参与单元需要在A2之上以避免循环引用。作为一个数组公式,它需要Ctrl + Shift + Enter而不是简单的输入。一旦输入正确,可以根据需要填写以获得所有可能的回报。

附录:要使用Archive!A2中的同一公式,请将ISERROR更改为ISNUMBER

+0

谢谢,尝试过但没有输出到细胞,我正在通过公式查看此刻。 – GaryWellock 2014-10-29 11:54:03

+0

@GaryWellock - 请参见下面的示例中,我曾在我的OneDrive:[Current_Archive_Filenames.xlsx(http://1drv.ms/1zfgWFY) – Jeeped 2014-10-29 12:34:08

+0

感谢您的公式,我刚才learn't数组公式是什么。我们遇到的问题是电子表格长达数千行,并且需要很长的时间来计算输出,因为它需要行中前一个单元格的结果来计算下一个答案。至于我可以解决。它是否正确? Cheers Gary – GaryWellock 2014-10-29 14:56:50

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 
+0

这正是我们想要的!作品魅力谢谢。 – GaryWellock 2014-10-29 17:02:47

+0

这复制整个行,正在寻找将一张纸的A列的内容复制到另一张的A列。我正在查找microsoft.com上的VB资源。 – GaryWellock 2014-11-04 13:37:01

+0

这是隐藏在'.CurrentRegion'定义中的。改变两个拷贝线'.Columns(1).Offset(1,0).Copy目的地:= wsa.Cells(2,1)”与* WSC *在后一个。 – Jeeped 2014-11-04 14:50:15