web-dev-qa-db-ja.com

自動型変換なしでvbaコードでセルに値を書き込む方法?

この問題は非常に単純に見えますが、解決策を見つけることができません(私はすでにそれについて頭を悩ませています:))

わかりましたので、次のように単純なvbaコードを使用して、Excelセルに特定の値を入力したいだけです。

Cells(1,1).Value2 = "123,456"

問題:これは(意図的に)文字列ですが、Excelでは常に数値に変換され、必要な文字列ではなく、その数値がセルに挿入されます。

Excelで変換せずに、必要なもの(文字列)だけをセルに挿入するにはどうすればよいですか?

おかげで、

5
Cells(1,1).Value2 = "'123,456"

数字の前の単一のアポストロフィに注意してください-これは、続くものはすべてテキストとして解釈する必要があることをExcelに通知します。

9
SeanC

実際、ティム・ウィリアムズがコメントしたように、それを機能させる方法は、テキストとして事前にフォーマットすることです。したがって、すべてをVBA経由で行うには、次のようにします。

Cells(1, 1).NumberFormat = "@"
Cells(1, 1).Value = "1234,56"
8
Alexandre

これはおそらく手遅れですが、テキスト変数からセルに入力したい日付に関する同様の問題がありました。必然的に、変数のテキスト値が日付に変換されました。私が最終的にしなければならなかったのは、 'を文字列変数に連結し、次のようにセルに配置することです:

prvt_rng_WrkSht.Cells(prvt_rng_WrkSht.Rows.Count, cnst_int_Col_Start_Date).Formula = "'" & _ 
    param_cls_shift.Start_Date (string property of my class) 
0
im_Spartacus