Excel 用 VBA 替换单元格格式



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

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

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

  2. 确保该函数位于要在其中捕获事件的特定工作表的代码页中。 如果你把它放到一个常规的代码模块中,它不会被调用。

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

工作表("工作表 1")。细胞(3,1)。值 = 总成本

最新更新