0

わかりましたので、VBA を使用して Excel 2007 の舞台裏でワークシート内のセルを変更する方法を見つけたいので、セル A1 と B1 に何かがある場合、C1 はボックスに数式を入れずに自動的に回答を入力します。

私は試した

Private Sub Worksheet_Change()
dim weekCost as integer
dim monthCost as integer
dim salesTax as integer
dim totalCost as integer

weekCost = Range("$A$1")
monthCost = Range("$B$2")

salesTax = (weekCost + monthCost) * .08
totalCost = weekCost + monthCost

totalCost = salesTax + totalCost

totalCost = range("$C$1")

end sub

そのセルに固執するための総コストを取得できません。

4

3 に答える 3

2

割り当てステートメントが逆です。試してください:

Range("C1") = totalCost
于 2013-10-23T20:10:14.833 に答える
0

最も明白な修正は、最後の行を に変更することrange("$C$1").Value = totalCostです。

それでもうまくいかない場合は、次の点を考慮してください。

  1. コードで目にする差し迫った問題の 1 つは、Worksheet_Change サブルーチンを実際には次のように定義する必要があることです。Private Sub Worksheet_Change(ByVal Target As Range)

  2. イベントをキャプチャする特定のワークシートのコード ページに関数があることを確認します。通常のコード モジュールに配置すると、呼び出されません。

  3. もう 1 つの対処すべき問題は、現時点では、A1 や B1 だけでなく、セルが変更されるたびにコードが再計算されることです。コードを If ステートメント内に配置して、再計算が実行されるタイミングを制限できます。

于 2013-10-23T20:21:24.053 に答える
0

または Worksheets("Sheet1").Cells(3,1).Value = totalCost

于 2013-10-23T20:22:28.430 に答える