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. 我在代码中看到的一个直接问题是 Worksheet_Change 子实际上应该定义为Private Sub Worksheet_Change(ByVal Target As Range)

  2. 确保该函数位于您希望在其中捕获事件的特定工作表的代码页中。如果将其放入常规代码模块中,则不会调用它。

  3. 您可能想要解决的另一个问题是,现在每次修改任何单元格时代码都会重新计算,而不仅仅是 A1 或 B1。您可以将代码放在 If 语句中以限制执行重新计算的时间。

于 2013-10-23T20:21:24.053 回答
0

或 Worksheets("Sheet1").Cells(3,1).Value = totalCost

于 2013-10-23T20:22:28.430 回答