2014-10-29 49 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