0
私は本当にこの1つと混同しています。私はそれがおそらく単純なものだと知っていますが、私はそれを理解できないようです。私はessentailly価格計算機を作成しており、これはマクロの最も重要な部分です。値が正しく返されません
Dim z As Double
For z = 7 To 8 Step 1
If ActiveSheet.Cells(z, 10).Value = "" Then
'''Dim Ref1 As Double
'''Set Ref1 = Sheets("Ref").Cells(o, 4).Value
Dim o As Double
For o = 5 To 150 Step 1
If ActiveSheet.Cells(z, 20).Value = Sheets("Ref").Cells(o, 3).Value Then
MsgBox "Found: " & Sheets("Ref").Cells(o, 4).Value
ActiveSheet.Cells(z, 10).Value = Sheets("Ref").Cells(o, 4).Value
Exit Sub
Else
End If
Next o
Else
End If
Next z
したがって、MsgBoxは私が探している値を返しますが、小数点以下は四捨五入されています。私はもっと必要ですが、それはMsgBoxにある値ではなく、セルにゼロが設定されているという事実ほど大きな問題ではありません。
Sheets("Ref").Cells(o, 4).Value
あなたは、私が値(Ref1の)ダブル変数を作成し始めた見ることができます。私は、彼らがともに考えると、なぜ把握することはできません。私はおそらく、 '.Value'がセルに値を入力するときに整数に丸められていると思っていましたが、これを使用しようとすると400のエラーが発生しました。
ご協力いただければ幸いです。
あなたが0小数を表示するように設定されていないことを確認するために移入しているセルのフォーマットをチェックしましたか? – sous2817
はい、私は実際には、これでforループを実行する前にVBAで再フォーマットしようとしていました。 'ActiveSheet.Range( "J7:J300")NumberFormat = "$#、## 0.0000000000" ' ActiveSheet.Range( "J7:J300")。NumberFormat = "0.0000000000" ゼロ値にゼロを追加するだけです。 (私は2つの異なるフォーマットを試していました) – theMagicOne
関連はありませんが、 'o'は' Double'ではなく、 'Double'でなければなりません。 – Comintern