2017-02-21 30 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

相关问题