1

以下のルーチンは、アクティブセルの整数を、数値の前の数値と = で置き換え、右側の 2 列を数値に置き換えますが、数値が 10 進数の場合はエラー 1004 を表示します。

どうすれば修正できますか?

    Sub EnterEqual()
     Dim CellContent As Variant
     Dim cell As Variant

    For Each cell In Selection
        CellContent = cell.Value
        cell.ClearContents
        cell.Value = "=" & CellContent & "+" & "rc[2]"
    Next cell


End Sub 
4

2 に答える 2

0

.Formulaセルの数式を更新するには、いずれかのプロパティを使用する必要があります。bonCodigo へのコメントから、あなたのローカル数値形式は,小数点を使用しているようですので、これを使用してください

Sub EnterEqual()
     Dim CellContent As Variant
     Dim cell As Range  ' <=== change type

    For Each cell In Selection
        CellContent = cell.Value  ' This get the result of any existing formula as a value.  
        cell.ClearContents
        cell.FormulaR1C1Local = "=" & CellContent & "+" & "rc[2]"
    Next cell
End Sub
于 2012-12-03T05:19:57.877 に答える
0
Sub EnterEqual()
     Dim CellContent As Integer '-- not sure why you need to use variant here
     Dim cell As Range '-- this has to be a range object

    For Each cell In Selection
        CellContent = cell.Value
        cell.ClearContents
        '-- you may add this as a formula
        cell.formula = "=" & CellContent & "+" & "RC[2]"
        '-- or use the below formular1c1
        cell.FormulaR1C1 = "=" & CellContent & " + " & "RC[2]"
    Next cell
End Sub 
于 2012-12-02T20:55:09.387 に答える