14

ここでこのコードを取得して、セルのコンテンツを取得して文字列として保存することはできません。double:
54.6666666667の代わりにN03:DM:(セルの内容の例) を取得します。

使用しCstr(Sheet1.Cells(i, 5).Value)ても同じ結果が得られます。

どんな助けでも大歓迎です。

Option Explicit
Private Sub GetAddress()

Dim varAdd As String
Dim i As Integer

    For i = 2 To 327
        If varTag = Sheet1.Cells(i, 2).Value Then
           varAdd = Sheet1.Cells(i, 5).Value
           varAdd = Left(varAdd, 7)
           Sheet3.Cells(incR, 2).Value = varAdd
           Exit For
        End If   
    Next i

End Sub

シートのスクリーンショットここに画像の説明を入力

4

1 に答える 1

39

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 今、 このコードをモジュールに貼り付けます




列 A を書式設定しないでください。B を TEXT として書式設定し、C を日付として書式設定し、D をパーセンテージとして書式設定します。

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%
于 2013-05-29T17:58:02.320 に答える