/ /セルの範囲をループし、他のセルにデータを入力し(ドロップダウン選択)、計算結果を返す - Excel、VBA、ループ、Excel-VBA、Excel-2003

セルの範囲をループし、他のセルにデータを入力し(ドロップダウン選択)、計算の結果を返す - Excel、VBA、ループ、Excel-VBA、Excel-2003

私はExcel 2003で構築された電卓を持っていますドロップダウンメニューからオプションを選択すると、データが収集され、計算されてその総コストが返され、アイテムのパッケージが作成されます。私が気に入っているのは、このドロップダウンのすべての組み合わせを繰り返し、総単価を別のセルに自動的に戻すことです。

私はすでに大規模なグリッドを作成しています可能なドロップダウン選択は別のワークシートに入力されます。ここでは、この繰り返しの例を示しますが、明らかにこれはループする必要があり、セル参照は移動でオフセットする必要があります。

  • "Cost Calculator"と名付けられたワークシートのE8のセル値は、 "Costs"というワークシートのG1のCell値である必要があります。
  • "Cost Calculator"と名付けられたワークシートのE9のセル値は、 "Costs"というワークシートのA2のセル値である必要があります。
  • "Cost Calculator"と名付けられたワークシートのE10のセル値は、 "Costs"と名付けられたワークシートのB2のセル値である必要があります。
  • "Cost Calculator"と題されたワークシートのE11のセル値は、 "Costs"というワークシートのC2のセル値である必要があります。
  • "Cost Calculator"と名付けられたワークシートのE12のセル値は、 "Costs"と名付けられたワークシートのD2のセル値である必要があります。
  • 「コスト計算」と題されたワークシートのE13のセル値は、「コスト」というワークシートのE2のセル値=
  • 次に、「コスト計算」というワークシートのセルE22の計算結果をコピーし、「コスト」というワークシートのG2に値を貼り付ける必要があります。

2つの変更を加えれば、まったく同じことが発生する必要があります。

  • "Cost Calculator"と名付けられたワークシートのE8のセル値は、ワークシートの "Costs"(1カラム分のオフセット)というH1のCell値=

「コスト計算」というワークシートのセルE22の計算結果をコピーし、「コスト」というタイトルのワークシートのH2に貼り付けた値を再度1つの列でオフセットする必要があります。

これは、同じ2つのオフセットで21回(初期時間を含む)発生する必要があります。

それが事実であれば私は幸せになります各行のマクロを実行しますが、行を巡回して理想的な空のセルに当たるまで実行を続けることもできます。もしそれが起こるならば、それを横切る21回後に行を下ろす必要があり、次のようになります:

  • "Cost Calculator"と名付けられたワークシートのE8のセル値は、 "Costs"と名付けられたワークシートのG1のCell値を必要とします(これは数量であるため、常に1行目になります)
  • 「コスト計算」というワークシートのE9のセル値は、「コスト」と題されたワークシートのA3のセル値に=
  • "Cost Calculator"と名付けられたワークシートのE10のセル値は、 "Costs"というワークシートのB3のセル値=
  • "Cost Calculator"と名付けられたワークシートのE11のセル値は、 "Costs"と名付けられたワークシートのC3のセル値に=
  • 「コスト計算」というワークシートのE12のセル値は、「コスト」というワークシートのD3のセル値=
  • 「コスト計算」というワークシートのE13のセル値は、「コスト」と題されたワークシートのE3のセル値に=
  • 次に、「コスト計算」というワークシートのセルE22の計算結果をコピーし、その値を「コスト」というワークシートのG3に貼り付ける必要があります。

その後、21回前と同じオフセットとループ。

Excelでこれが可能かどうかはわかりませんが、私はここに誰かが助けることができるかどうかわかります。私が何を求めているのかご質問がありましたら、可能な限りわかりやすいように努力しました。うまくいけば、アイデアが伝達され、私のシートのレイアウトを再フォーマットして、コードを実行できるようにする必要があるならば。

回答:

回答№1は0

私はこれがまさにあなたが探しているものであるとは確信していません、私は

その後、21前と同じオフセット 回。ループ。

私は次のことをするいくつかのコードを作成しました

ワークシートのE8のセル値 「コスト電卓 "は= ワークシートのG1のCell値 E9の「コスト」セル値 ワークシート「コスト Calculator "はセルの値を必要とする ワークシートのA2について "コスト" E10のセル値 ワークシート「コスト計算」 B2のセル値= 「コスト」セルというワークシート ワークシートのE11の値 「コスト・カルキュレーター」と題する表題は、 ワークシートのC2のセル値 E12の「コスト」セル値 ワークシート「コスト Calculator "はセルの値を必要とする ワークシートD2の 「コスト」E13のセル値 「コスト計算」というワークシート E2のセル値= 「コスト」と題されたワークシート のセルE22の計算結果 ワークシート「コスト 「電卓」をコピーして ワークシートのG2に貼り付けられた値 「費用」と題する。

それから、まったく同じことが 2で発生する変更。のセル値 「コスト」と題されたワークシートのE8 Calculator "はCell値の必要があります ワークシートのH1用 "コスト"(1列分オフセット)と セルE22の計算結果 ワークシート「コスト計算」 コピーする必要があり、値 ワークシートのH2に貼り付ける もう一度1でオフセットされた "コスト"と題する カラム。

Sub Calc_Loop()
Dim lngRow As Long
Dim intOS As Integer
Dim intCol As Integer

Sheets("Cost Calculator").Select
lngRow = 2
Do
For intOS = 1 To 5
"Set Cells E9 - E13 = to Cells A-E on row lngRow on Sheet Costs
Cells(8 + intOS, 5) = Sheets("Costs").Cells(lngRow, intOS)
Next intOS
"Set E8 to G1 on Sheet Costs
Cells(8, 5) = Sheets("Costs").Cells(1, 7)
"Set G on row lngRow on Sheet Costs to E22
Sheets("Costs").Cells(lngRow, 7) = Cells(22, 5)

"Set E8 to H1 on Sheet Costs
Cells(8, 5) = Sheets("Costs").Cells(1, 8)
"Set H on row lngRow on Sheet Costs to E22
Sheets("Costs").Cells(lngRow, 8) = Cells(22, 5)

lngRow = lngRow + 1
Loop Until IsEmpty(Sheets("Costs").Cells(lngRow, 1))
End Sub

これはSheet "Costs"をループし、
* A2とE2の計算出力をG1と
* A2からE2までの計算出力のH2をH1に挿入する
* A3とE3の計算出力をG3でG1と
* A3 - E3から計算された出力をH1に挿入するとH3が挿入されます。

これはあなたが必要とするものですか?