For Each y In Range("B2:B100")
       If y.Value = Range("B1").Value Then
           Range("D2:D100").Value = Range("D2:D100") + 1
       End If
        
   Next小弟vba初学者,请问上面的代码为何不能执行?想实现为 如果B2:B100 里的数据,等于B1,那么对应的D2:D100的数据自动加1,这个循环语句应该如何写呢?或是其他解决方法。谢谢

解决方案 »

  1.   

     
    For Each y In Range("B2:B100") 是集合吗?
    If y.Value = Range("B1").Value 是集合中的元素吗?
      

  2.   

    Private Sub CommandButton1_Click()
      Dim y As Object
      For Each y In Range("B2:B100")
          If y.Value = Range("B1").Value Then
              y.Value = y.Value + 1
          End If
            
      NextEnd Sub
      

  3.   


        是指b2开始到b100的每个cell数据中,如果有等于B1的数据,那么所在行对应的D2到D100中数据中,自动加1    不是集合中的。是单独的。
      

  4.   

    Range("D" &  y.row).Value = Range("D" &  y.row) + 1   
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 
    http://feiyun0112.cnblogs.com/
      

  5.   

    dim i as long 
    dim y as stringfor i=2 to 100
      y=Range("$B$" & i).value 
      If y = Range("B1").Value Then 
        Range("$D$" & i).Value = Range("$D$" & i).Value  + 1 
      End If       
    Next 
      

  6.   


    先谢谢回复。不过不是这个意思,      如果  A=B  那么 C=C+1 
      
     是这个意思