2012-09-08 119 views
0

我想运行一个excel vba,它将在列E下行,并且在找到value =“capa”后将转到下面的两个单元格,计算该单元格的hex2dec值,通过与价值“CAPA”单元格列F存在,并继续向下搜索栏E. 到目前为止,我已经与下面传来,但它不工作:如何在excel vba中沿整列运行公式excel vba

For Each cell In Range("E:E") 
    If cell.Value = "Capa" Then 
      ActiveCell.Offset.FormulaR1C1 = "=HEX2DEC(R[2]C[-1])" 
    End If 
Next cell 

谢谢!

回答

0

这样的事情呢?

这将搜索volumn E代表“卡帕”,如有发现,将直接使用下面的“卡帕”的值将公式F列列E

Sub CapaSearch() 
    Dim cl As Range 

    For Each cl In Range("E:E") 
     If cl.Value = "Capa" Then 
      cl.Offset(0, 1).Formula = "=HEX2DEC(" & cl.Offset(1, 0) & ")" 
     End If 
    Next cl 
End Sub 
0

你真的要限制循环,使您不会遍历整个工作表(Excel 2007+中的1,000,000多行)
此外,将源数据复制到变体数组也会加快速度。

试试这个

Sub Demo() 
    Dim dat As Variant 
    Dim i As Long 
    With ActiveSheet.UsedRange 
     dat = .Value 
     For i = 1 To UBound(dat, 1) 
      If dat(i, 6 - .Column) = "Capa" Then 
       .Cells(i, 7 - .Column).FormulaR1C1 = "=HEX2DEC(R[2]C[-1])" 
      End If 
     Next 
    End With 
End Sub 
+0

谢谢!这样可行! –