0

列 E に移動する Excel vba を実行し、値 = "capa" が 2 つ下のセルに移動し、そのセルの hex2dec 値を計算し、列 F に値 "capa" を持つセルごとに提示します。列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

ありがとう!

4

2 に答える 2

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
于 2012-09-08T09:33:51.217 に答える
0

このようなものはどうですか?

これにより、ボリューム E で "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
于 2012-09-08T08:00:00.393 に答える