好的,所以我想找出一种方法来使用 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
我无法获得总成本来坚持那个细胞,任何人都知道如何?
你的赋值语句是向后的,请尝试:
Range("C1") = totalCost
最明显的解决方法是将最后一行更改为 range("$C$1").Value = totalCost
。
如果这不起作用,请考虑以下其他事项:
-
我在代码中看到的一个直接问题是,Worksheet_Change sub 实际上应该定义为
Private Sub Worksheet_Change(ByVal Target As Range)
-
确保该函数位于要在其中捕获事件的特定工作表的代码页中。 如果你把它放到一个常规的代码模块中,它不会被调用。
-
您可能想要解决的另一个问题是,现在每次修改任何单元格时,代码都会重新计算,而不仅仅是 A1 或 B1。 可以将代码放在 If 语句中,以限制执行重新计算的时间。
工作表("工作表 1")。细胞(3,1)。值 = 总成本