Excel使用VBA替换单元格格式

时间:2013-10-23 20:02:34

标签: excel vba excel-vba

好的,所以我想找出一种方法来改变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

我不能让总成本坚持到任何一个人都知道的那个细胞?

3 个答案:

答案 0 :(得分:2)

您的作业声明是向后的,请尝试:

Range("C1") = totalCost

答案 1 :(得分:0)

最明显的解决方法是将最后一行更改为range("$C$1").Value = totalCost

如果这不起作用,可以考虑以下其他一些事项:

  1. 我在代码中看到的一个直接问题是Worksheet_Change sub实际上应该定义为Private Sub Worksheet_Change(ByVal Target As Range)

  2. 确保该功能位于要捕获事件的特定工作表的代码页中 。如果将它放入常规代码模块中,则不会调用它。

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

答案 2 :(得分:0)

或者     工作表(“Sheet1”)。单元格(3,1).Value = totalCost