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