2017-02-21 29 views
0

舉個例子:使用的,如果在Excel VBA計數單元的值,直到最後一排,但同時要使它低於30

For i = 1 To LastRow 
    If Cells(i, 1).Value = "Tube1" Then 
     Val1 = Worksheets("Sheet1").Cells(i, 2).Value 
     Val2 = Worksheets("Sheet2").Cells(i, 2).Value 

我想要的代碼,以查找單詞「管」在Excel工作表中的所有單元格中,但它只能是30.假設此處的關鍵字是「Tube」。路徑名稱可以從Tube1,Tube2,Tube3等更改,但它只能在Tube30之前。這意味着它只能計數30次的「管」字。每個路徑包含它後面的一個單元格後的不同值,例如; (Tube1,值)。如何讓價值部分穩定下來,我現在有的概率是如何確保代碼數不超過30的路徑。

+0

什麼是正確的方向以上? 「使它少於30」是什麼意思?什麼應該少於30?字符串當然不能超過30,因爲你要查找的字符串只有4個字母長的'path'。如果你想在30到30之前退出循環,那麼你應該跟蹤另一個變量(我在上面的代碼中沒有看到)的出現次數。您可能能夠幫助我們理解一些樣本數據以及附加到該帖子的期望結果。 – Ralph

+0

對不起,這是一個我沒注意到的錯字。好吧,老實說,我甚至不知道我應該如何解釋這一點。有點無知。我想找到單詞「Tube1」而不是Path。這裏少於30意味着我希望代碼在這裏只能檢測到30個單詞「tube」。對於i = 1到LastRow意味着檢查單詞「管」直到最後一行,但管只能到30,「管30」。我不能使用i = 1到30,因爲單詞「Tube」可以更改(Tube1),並且可以在Excel表格中的不同位置。對不起,但你的意思是「字符串」,甚至沒有涉及到這個問題實際上 – farahxx

+0

這裏的關鍵字是「管」,我希望它小於30.管名稱可以從Tube1,Tube2直到Tube30或Tube 60但代碼只能檢測到只重複30次的名稱「tube」 – farahxx

回答

0

我不是100%你問的,但是我認爲這將成爲你的指針

使用Instr你只能找到包含「Path」子字符串的單元格。然後,我們將執行一些字符串操作來測試單元格值中的數字是否等於或小於30.如果不是,我們將Exit環路for

我認爲,如果你想要的代碼,以找到您的代碼示例中字`Path`那你爲什麼有字`Tube1`這應該指向你在你想要

For i = 1 To LastRow 
    If Instr(1, Cells(i, 1).Value2, "Path", vbTextCompare) > 0 Then 
     If CInt(Replace(Cells(i, 1).Value2, "Path", vbnullstring)) <= 30 then Exit For 

     Val1 = Worksheets("Sheet1").Cells(i, 2).Value2 
     Val2 = Worksheets("Sheet2").Cells(i, 2).Value2 
    End If 
Next i 
+0

謝謝,湯姆!我想你在這裏得到了我想問的問題。這是我的一個線索。我會盡力把這些東西放在我的代碼中 – farahxx

相關問題