如何在excel vba中沿整列运行方程式

时间:2012-09-08 05:36:56

标签: excel-vba vba excel

我想运行一个excel vba,它将从E列开始,一旦找到值=“capa”将进入下面两个单元格,计算该单元格的hex2dec值,由单元格显示值“capa”在F列中继续向下搜索E列。 到目前为止,我已经使用了以下内容,但它不起作用:

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

谢谢!

2 个答案:

答案 0 :(得分:0)

这样的事情怎么样?

这将在volumE中搜索“Capa”,如果找到,将使用E列中“Capa”正下方的值将公式放在F列中

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

答案 1 :(得分: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