2017-07-06 11 views
0

G1の値が入力されたときに特定の範囲のセル(J11〜J36)値が更新されるExcelシートを作成しました。VBAは、セルの範囲を同じ値まで他の範囲にコピーするループコードまでです。

そして、J11からJ36までの値は、手動でD11からD36に入力(またはコピー)されます。 これを行うと、J11からJ36の値が再び変更されます。だから、私は両方の範囲を同じにする反復計算を行います。

これを自動化するマクロコードはありますか?

私はループまでしようとしましたが、最初の範囲J11だけをコピーします。

FYIの範囲J11からJ36には、コピー中にスキップする必要があるタイトル行J19、J20、J28、J29があります。私の現在のコードは以下の通りです

Sub DoUntilloop() 

Dim i As Integer 

i = 11 
For i = 11 To 16 


Do Until i > 16 
Cells(i, 4).Value = Cells(i, 10) 
i = i + 1 
Loop 

Next i 

End Sub 

この上の任意の助けいただければ幸いです。

+1

私たちは修正が必要なものを解決できるように、質問に既存のコードを含めてください。 – YowE3K

+0

こんにちは。既存のコードについては下記をご覧ください。 サブDoUntilloop() 暗いI整数として I = 11 についてI = 11 16 ために行うまで、私> 16個の 細胞(I、4).Valueの細胞=(I、10) I = i + 1 ループ 次へi End Sub –

答えて

0

現在のループでは、11行目から16行目までが実際に処理されるはずです。質問に記載されているとおり、11行だけではありません。しかし、2つのループを持つ必要がないため、設計が不適切です。外部ループは、現在書かれているように効果的に何もしません。

Sub DoUntilloop() 

    Dim i As Long 

    For i = 11 To 36 
     If i <> 19 And i <> 20 And i <> 28 And i <> 29 Then 
      Cells(i, "D").Value = Cells(i, "J").Value 
     End If 
    Next i 

End Sub 
+0

こんにちはYowE3K、あなたは正しいです。私は11行から16行のプロセスを実際に処理することに気付かなかった。 ループを追加した理由は、両方が同じ値になるまで値をコピーすることです。前述したように、J11からJ36の値がD11からD36にコピーされると、J11からJ36の値が変更されます(別の式のため)。いくつかの繰り返しの後で両方が一致します。 私はあなたのコードが初めてセルをコピーするのに最適だと思います。 しかし、セルの値を同じにすることは可能ですか?あなたからの助けに感謝します。 ありがとうございます。 –

+0

@SarathkumarあなたがG1に入力している値と、それぞれの連続する値をどのようにして決めているか分からなければ、私はこれを行うと考えることができません。 (それはソルバーの仕事のように聞こえるが、私は確信が持てない) – YowE3K

+0

事実は、私がオフィスでこれをエクセルにするので、機密保持のためにExcelファイルや他の詳細を共有することはできない。だから、私は私の要求でもっと精巧にすることができます。細胞G1は温度を有する。だから各温度のために私はJ11からJ36までの値を定義しようとしています。また、これらの値から、D11からD36までの別の値のセットを照合しようとしています。値は等しくなるまでD11からD36に転送され続けます。私がしたことは、各ペースト後に両方の範囲の違いを見つけることです。差が0の場合は終了できます。 –

0

お返事ありがとうございます。そのコードは、さらにビルドに役立ちました

関連する問題