Excel 2003公式在VBA中更改后不计算

时间:2013-04-30 18:13:36

标签: excel vba formula

我正在使用Excel 2003版本。

如果我使用VBA更改公式,例如:

Range("A1").Formula = "=Sheet2!B:B"

有时公式会计算并显示Sheet2的单元格B1中的正确值。但是,有时却没有。相反,在Sheet1中的单元格A1中显示的仍然是“= Sheet2!B:B”,而它应该是Sheet2中单元格B1的值。另外,即使我将单元格A1的格式更改为“常规”,每次通过VBA为其分配公式时,格式也会自动变为“文本”。

没有重新计算快捷键,如 F9 Shift - F9 CTRL - ALT < / kbd> - SHIFT - F9 work。

之前有没有人遇到过这个问题?有没有人找到解决方案?

2 个答案:

答案 0 :(得分:2)

试试这个

Sub Sample()
    With Range("A1")
        .NumberFormat = "General"
        .Formula = "=Sheet2!B1"
    End With
End Sub

答案 1 :(得分:0)

听起来该单元格的格式会以某种方式更改为Text(可能在代码的另一部分中)。

尝试将这些行放在.Formula = ...

之前
Sub test()
    Debug.Print "Format: " & Range("A1").NumberFormat
    Debug.Print "Value: " & Range("A1").Value
    Debug.Print "Formula: " & Range("A1").Formula
    Range("A1").Formula = "=Sheet2!B:B"
End Sub

然后查看“立即”窗格以查看正在进行的操作。