1

Excel2003版を使用しています。

次のような VBA で数式を変更した場合:

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

数式が Sheet2 のセル B1 から正しい値を計算して表示することがあります。ただし、そうでない場合もあります。代わりに、シート 2 のセル B1 の値である必要があるときに、シート 1 のセル A1 に「=Sheet2!B:B」が表示されます。さらに、セル A1 の書式を「一般」に変更しても、VBA 経由で数式を割り当てるたびに、書式は自動的に「テキスト」に戻ります。

F9またはShift-F9またはCTRL- 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

そのセルの形式が何らかの形でテキストに変更されているようです (おそらくコードの別の部分で)。

.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 に答える