2017-02-16 69 views
2

我有一個電子表格,其中一列數據全部在一列,我正在尋找拔出特定數據。我試圖看看'做直到循環'是否會起作用。循環遍歷一列,並拉出特定單元格

我試圖讓循環停止,當它看到「目錄*」作爲單元格的一部分,例如目錄的G:\示例。在此之前,循環應該查看單元格,如果它不以數字開始,則將該單元格複製到另一個表單/列。

Sub Order() 

iRow = 1 

    Do Until Cells(iRow, 1) = "Directory*" 
    If Cells(iRow, 1) <> NumberatBeginning Then 
    Cells(iRow, 1).Copy _ 
    Destination:=Worksheets("Sheet2").Range("A1") 
    End If 


    iRow = iRow + 1 
    Loop 

End Sub 

任何幫助,將不勝感激

回答

2

就快,該IsNumeric功能可以配合使用的Mid(或Left)函數來檢查的第一個字符的單元格的值,並返回True或者如果字符是數字,則爲False。試試這個:

Sub Order() 

Dim iRow as Long, x as Long 

iRow = 1 
x = 1 

Do Until Cells(iRow, 1).Value Like "Directory*" 
    If Not IsNumeric(Mid(Cells(iRow, 1).Value, 1, 1)) Then 
     Worksheets("Sheet2").Cells(x, 1).Value = Cells(iRow, 1).Value 
     x = x + 1 
    End If 
iRow = iRow + 1 
Loop 

End Sub 

您應該避免使用複製和粘貼,因爲它會減慢代碼,它始終是更好地簡單地設置單元格的值。另外,當您循環並複製非數字第一個字符的單元格並將它們粘貼到Sheet2時,您的代碼始終粘貼到同一個單元格Range("A1")中,假設您需要一組您需要的值通過在每次將值複製到Sheet2時添加一行來增加此值。

+0

當然'喜歡'目錄*「'會是假的,如果有一個數字在開始,所以不需要測試呢? – CallumDA

+0

但是@OP希望循環在找到以「Directory *」開始的值時停止,所以我從 – Jordan

+0

這個問題中瞭解到,謝謝你的工作。 –