1

我正在使用 Excel 2003 版本。

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

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

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

F9Shift-F9CTRL- ALT- SHIFT-这样的重新计算快捷键都F9不起作用。

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

4

2 回答 2

2

尝试这个

Sub Sample()
    With Range("A1")
        .NumberFormat = "General"
        .Formula = "=Sheet2!B1"
    End With
End Sub
于 2013-04-30T19:17:44.027 回答
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

并检查即时窗格以查看发生了什么。

于 2013-04-30T19:02:18.550 回答