我正在使用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。
之前有没有人遇到过这个问题?有没有人找到解决方案?
答案 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
然后查看“立即”窗格以查看正在进行的操作。