2017-08-23 21 views
-1

セルの値を更新する際に問題が発生しています。以下は、私がセルの値を更新できるようにするために実行しているテストコードです。エラーはありませんが、コードを実行するとセルは空のままです。Excelでセルに値が入力されない

編集:私はvba構文に精通していないので、私がしようとしていることを示すために以下のコードを更新しました。基本的には、特定の素材に対応する値を見つけて、見つかったすべての値を合計したいと思います。私はあなたが値を入力していないと言う代わりに、それらを引っ張っていると言うことを知っています。私は変数を初期化していると信じていました。代わりに値を入力するにはどうすればよいですか?

Sub MaterialSort() 

Dim deut As Double 
Dim am241 As Double 
Dim pu238 As Double 
Dim pu239 As Double 
Dim pu240 As Double 
Dim pu241 As Double 
Dim np237 As Double 
Dim u238 As Double 
Dim u235 As Double 
Dim u233 As Double 
Dim am243 As Double 


deut = Worksheets("Material PEC").Cells(2, 2).Value 
am241 = Worksheets("Material PEC").Cells(3, 2).Value 
pu238 = Worksheets("Material PEC").Cells(4, 2).Value 
pu239 = Worksheets("Material PEC").Cells(5, 2).Value 
pu240 = Worksheets("Material PEC").Cells(6, 2).Value 
pu241 = Worksheets("Material PEC").Cells(7, 2).Value 
np237 = Worksheets("Material PEC").Cells(8, 2).Value 
u238 = Worksheets("Material PEC").Cells(9, 2).Value 
u235 = Worksheets("Material PEC").Cells(10, 2).Value 
u233 = Worksheets("Material PEC").Cells(11, 2).Value 
am243 = Worksheets("Material PEC").Cells(12, 2).Value 


For j = 2 To 82 Step 8 
For i = 3 To 70 

    k = j + 5 

If Not IsError(Worksheets("Master PEC").Cells(i, j)) Then 

    If Worksheets("Master PEC").Cells(i, j) = "Deuterium" Then 

     deut = Worksheets("Master PEC").Cells(i, k).Value + deut 

    ElseIf Worksheets("Master PEC").Cells(i, j) = "Am-241" Then 

     am241 = Worksheets("Master PEC").Cells(i, k).Value + am241 

    ElseIf Worksheets("Master PEC").Cells(i, j) = "Pu-238" Then 

     pu238 = Worksheets("Master PEC").Cells(i, k).Value + pu238 

    ElseIf Worksheets("Master PEC").Cells(i, j) = "Pu-239" Then 

     pu239 = Worksheets("Master PEC").Cells(i, k) + pu239 

    ElseIf Worksheets("Master PEC").Cells(i, j) = "Pu-240" Then 

     pu240 = Worksheets("Master PEC").Cells(i, k) + pu240 

    ElseIf Worksheets("Master PEC").Cells(i, j) = "Pu-241" Then 

     pu241 = Worksheets("Master PEC").Cells(i, k) + pu241 

    ElseIf Worksheets("Master PEC").Cells(i, j) = "Np-237" Then 

     np237 = Worksheets("Master PEC").Cells(i, k) + np237 

    ElseIf Worksheets("Master PEC").Cells(i, j) = "Dep. U-238" Then 

     u238 = Worksheets("Master PEC").Cells(i, k) + u238 

    ElseIf Worksheets("Master PEC").Cells(i, j) = "Enr. U-235" Then 

     u235 = Worksheets("Master PEC").Cells(i, k) + u235 

    ElseIf Worksheets("Master PEC").Cells(i, j) = "U-233" Then 

     u233 = Worksheets("Master PEC").Cells(i, k) + u233 

    ElseIf Worksheets("Master PEC").Cells(i, j) = "Am-243" Then 

     am243 = Worksheets("Master PEC").Cells(i, k) + am243 

    End If 

End If 
Next 
Next 
End Sub 
+3

**あなたは**セルに値を入れているわけではありません。あなたは**細胞から値を得ています。 – Jeeped

+0

変数を新しい値で上書きしています。あなたは実際に値 – sourceCode

答えて

4

割り当てが正しく行われていません。私は何だろうと、次のとおりです。

Dim deut As Double 
deut = 2 
Worksheets("Material PEC").Cells(2, 2).Value = deut 

のように...

+0

を更新することはありません!私の左と右をここに混ぜるだけで、気にしないでください – Harry

0

これは

Sub MaterialSort() 

Dim deut As Double 
Dim am241 As Double 
Dim pu238 As Double 
Dim pu239 As Double 
Dim pu240 As Double 
Dim pu241 As Double 
Dim np237 As Double 
Dim u238 As Double 
Dim u235 As Double 
Dim u233 As Double 
Dim am243 As Double 

deut = 2 
am241 = 2 
pu238 = 1 
pu239 = 3 
pu240 = 3 
pu241 = 4 
np237 = 5 
u238 = 12 
u235 = 4 
u233 = 4 
am243 = 5 

Worksheets("Material PEC").Cells(2, 2).Value = deut 
Worksheets("Material PEC").Cells(3, 2).Value = am241 
Worksheets("Material PEC").Cells(4, 2).Value = pu238 
Worksheets("Material PEC").Cells(5, 2).Value = pu239 
Worksheets("Material PEC").Cells(6, 2).Value = pu240 
Worksheets("Material PEC").Cells(7, 2).Value = pu241 
Worksheets("Material PEC").Cells(8, 2).Value = np237 
Worksheets("Material PEC").Cells(9, 2).Value = u238 
Worksheets("Material PEC").Cells(10, 2).Value = u235 
Worksheets("Material PEC").Cells(11, 2).Value = u233 
Worksheets("Material PEC").Cells(12, 2).Value = am243 


End Sub 
0

を動作するはずあなたに新しい値を設定し、変数に現在の値を設定しているように見えますその変数と実際にはセル自体を更新することはありません。それはこの

duet = 2 
Worksheets("Material PEC").Cells(2, 2).Value = deut 
0

あなたは、あなたの質問に投稿したコードは、セルに値を代入されていないようになっているはずの細胞にコードを入れて

。最初のブロックでは、セルの変数値を割り当てており、2番目のブロックでは、それらの変数を再割り当てしています。

あなたがしたいと思うことをするには、二重変数の代わりにrange変数とdouble変数が必要です。

Sub MaterialSort() 

Dim deut As Double 
Dim am241 As Double 
Dim pu238 As Double 
Dim pu239 As Double 
Dim pu240 As Double 
Dim pu241 As Double 
Dim np237 As Double 
Dim u238 As Double 
Dim u235 As Double 
Dim u233 As Double 
Dim am243 As Double 

Dim deut_rng As Range 
Dim am241_rng As Range 
Dim pu238_rng As Range 
Dim pu239_rng As Range 
Dim pu240_rng As Range 
Dim pu241_rng As Range 
Dim np237_rng As Range 
Dim u238_rng As Range 
Dim u235_rng As Range 
Dim u233_rng As Range 
Dim am243_rng As Range 

set deut_rng = Worksheets("Material PEC").Cells(2, 2) 
set am241_rng = Worksheets("Material PEC").Cells(3, 2) 
set pu238_rng = Worksheets("Material PEC").Cells(4, 2) 
set pu239_rng = Worksheets("Material PEC").Cells(5, 2) 
set pu240_rng = Worksheets("Material PEC").Cells(6, 2) 
set pu241_rng = Worksheets("Material PEC").Cells(7, 2) 
set np237_rng = Worksheets("Material PEC").Cells(8, 2) 
set u238_rng = Worksheets("Material PEC").Cells(9, 2) 
set u235_rng = Worksheets("Material PEC").Cells(10, 2) 
set u233_rng = Worksheets("Material PEC").Cells(11, 2) 
set am243_rng = Worksheets("Material PEC").Cells(12, 2) 



deut = Worksheets("Material PEC").Cells(2, 2).Value 
am241 = Worksheets("Material PEC").Cells(3, 2).Value 
pu238 = Worksheets("Material PEC").Cells(4, 2).Value 
pu239 = Worksheets("Material PEC").Cells(5, 2).Value 
pu240 = Worksheets("Material PEC").Cells(6, 2).Value 
pu241 = Worksheets("Material PEC").Cells(7, 2).Value 
np237 = Worksheets("Material PEC").Cells(8, 2).Value 
u238 = Worksheets("Material PEC").Cells(9, 2).Value 
u235 = Worksheets("Material PEC").Cells(10, 2).Value 
u233 = Worksheets("Material PEC").Cells(11, 2).Value 
am243 = Worksheets("Material PEC").Cells(12, 2).Value 


deut_rng.value = 2 
am241_rng.value = 2 
pu238_rng.value = 1 
pu239_rng.value = 3 
pu240_rng.value = 3 
pu241_rng.value = 4 
np237_rng.value = 5 
u238_rng.value = 12 
u235_rng.value = 4 
u233_rng.value = 4 
am243_rng.value = 5 

End Sub 

これは二重の変数の全てへの細胞の元の値を保存し、その後、レンジvaraiblesを使用してセルの値を変更することができます。

関連する問題