183

Excel VBAで整数値「45」を文字列値「45」に変換するにはどうすればよいですか?

4

10 に答える 10

283

CStr(45)必要なのはこれだけです (Convert String 関数)

于 2012-07-21T19:33:18.670 に答える
99

CStr() 関数を試す

Dim myVal as String;
Dim myNum as Integer;

myVal = "My number is:"
myVal = myVal & CStr(myNum);
于 2012-07-21T19:32:42.830 に答える
7

私の場合、関数 CString が見つかりませんでした。ただし、値に空の文字列を追加しても機能します。

Dim Test As Integer, Test2 As Variant
Test = 10
Test2 = Test & ""
//Test2 is now "10" not 10
于 2016-07-15T08:18:02.640 に答える
3

変数を宣言しない最短の方法は、Type Hintsを使用することです:

s$ =  123   ' s = "123"
i% = "123"  ' i =  123

これは でコンパイルされませんOption Explicit。型は not になりますVariantbut StringandInteger

于 2016-08-04T12:53:52.973 に答える
3

取り込んでいる文字列がたまたま E01 などの 16 進数である場合、CStr 関数を使用しても、最初に文字列変数型に格納しても、Excel はそれを 0 として変換します。この問題を回避する 1 つの方法は、値の先頭に ' を追加することです。

たとえば、Word の表から値を取り出して Excel に取り込む場合は、次のようになります。

strWr = "'" & WorksheetFunction.Clean(.cell(iRow, iCol).Range.Text)
于 2016-11-07T23:18:50.907 に答える
0

最も重要なのは、Excel シートからデータを取得している間です。より大きな数は自動的に科学数、つまり e+10 に変換されるためです。
したがって、これにより、より一般的な答えが得られると思います。落下の有無は確認していません。

CStr(CDbl(#yourNumber#))

これは、e+ 変換された数値に対して機能します。ちょうどCStr(7.7685099559e+11)"7.7685099559e+11" と表示されるので、期待どおりではありません: "776850995590" だから、私の答えはより一般的な結果になると言いたいです。

よろしく、M

于 2019-11-27T23:24:46.720 に答える