2013-10-23 233 views
0

好吧,我想找出一种方法来改变Excel 2007场景中工作表内的单元格,所以如果我在单元格A1和B1中有东西,那么C1会自动填充答案没有在框中的任何公式。Excel用VBA替换单元格格式

我试图

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 

我不能让TOTALCOST坚持给该小区任何一个知道如何?

回答

2

你的赋值语句是倒退,尝试:

Range("C1") = totalCost 
+0

哇它是那么容易,非常感谢你! –

+0

没问题。如果它解决了您的问题,请考虑将答案标记为“已接受”:) –

+0

此选项位于何处? –

0

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

如果不工作,这里有一些其他的事情要考虑:

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

  2. 在特定工作表的代码页中,确保函数为,您希望捕获事件。如果你把它放到一个普通的代码模块中,它将不会被调用。

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

0

或者 工作表( “工作表Sheet1”)。电池(3,1).value的= TOTALCOST

相关问题