Range("A1").Text
の代わりに使用.Value
コメントの投稿編集:
なぜ?
Range オブジェクトの.Text
プロパティは、スプレッドシートに文字通り表示されているものを返すため、たとえばセルが表示されている場合i100l:25he*_92
、 <-Text
は、書式設定を含むセル内の内容を正確に返します。およびプロパティ
は、書式設定を除いて、フードの下のセルに格納されているものを返します。特に日付型の場合、10 進数表現を返します。.Value
.Value2
.Value2
意味とパフォーマンスをより深く掘り下げたい場合はthis article
、良いガイドのように思われるものを見つけました
別の編集
どうぞ @Santosh DEFAULT (列 A) から他の列への値を
( MANUALLY ) で入力し
ます 列 A をまったく
書式設定しません 列 B をテキストとして
書式設定します 列 C を日付 [dd/mm/yyyy] として
書式設定しますD as Percentage
今、
このコードをモジュールに貼り付けます

Sub main()
Dim ws As Worksheet, i&, j&
Set ws = Sheets(1)
For i = 3 To 7
For j = 1 To 4
Debug.Print _
"row " & i & vbTab & vbTab & _
Cells(i, j).Text & vbTab & _
Cells(i, j).Value & vbTab & _
Cells(i, j).Value2
Next j
Next i
End Sub
そしてAnalyse
アウトプット!それは本当に簡単で、私ができることはこれ以上ありません:)
.TEXT .VALUE .VALUE2
row 3 hello hello hello
row 3 hello hello hello
row 3 hello hello hello
row 3 hello hello hello
row 4 1 1 1
row 4 1 1 1
row 4 01/01/1900 31/12/1899 1
row 4 1.00% 0.01 0.01
row 5 helo1$$ helo1$$ helo1$$
row 5 helo1$$ helo1$$ helo1$$
row 5 helo1$$ helo1$$ helo1$$
row 5 helo1$$ helo1$$ helo1$$
row 6 63 63 63
row 6 =7*9 =7*9 =7*9
row 6 03/03/1900 03/03/1900 63
row 6 6300.00% 63 63
row 7 29/05/2013 29/05/2013 41423
row 7 29/05/2013 29/05/2013 29/05/2013
row 7 29/05/2013 29/05/2013 41423
row 7 29/05/2013% 29/05/2013% 29/05/2013%