2012-09-08 120 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

謝謝!這樣可行! –