【问题标题】:Excel Replacing Cell formatting with VBAExcel用VBA替换单元格格式
【发布时间】:2013-11-02 07:00:35
【问题描述】:

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

我无法计算出粘在那个单元格上的总成本,任何人都知道吗?

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    或者 Worksheets("Sheet1").Cells(3,1).Value = totalCost

    【讨论】:

      【解决方案2】:

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

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

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

      2. 确保函数位于您希望在其中捕获事件的特定工作表的代码页中。如果您将其放入常规代码模块中,它将不会被调用。

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

      【讨论】:

        【解决方案3】:

        你的赋值语句倒退了,试试:

        Range("C1") = totalCost
        

        【讨论】:

        • 没问题。如果解决了您的问题,请考虑将答案标记为“已接受”:)
        • 这个选项在哪里?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多