2017-01-26 8 views
1

私のプロジェクトで先行0を取得して維持するのは苦労しています。ここでは、コードの現在の関連部分です:先行0の保持/挿入

Dim jobNum As String 

jobNum = Left(r1.Cells(1, 1), 6) 

r2.Cells(1, JOBCOL) = (jobNum) 
r2.Cells(1, JOBCOL).NumberFormat = "@" 

は~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~ スタッフは私が試してみた -

r2.Cells(1, JOBCOL) = CStr(jobNum) 

を - 多分問題だということを貼り付けているため、文字列モードでそれを維持しようとしていますか?

If Len(jobNum) = 4 Then 
    jobNum = "'00" & jobNum 
    Else 
    jobNum = jobNum 
    End If 

[OK]を正常に読み取ることができない場合は、手動で追加できますか? (予想される長さは、長さレジスタは4として、私は問題を持っている、と私は2つの主要な0年代に追加する必要がある場合、6である)

そして最後に、それを得るために私の試みは、最初の場所で適切に読み取るために:

Dim Jobnum as String 
Dim Jobnumfixed as Integer 

jobNum = Left(r1.Cells(1, 1), 6) 
jobnumfixed = format (jobnum, "000000") 

私はこれらのすべてをExcel VBA Won't Keep Leading Zeroesから取った。しかし、それらのどれも私のシートにいくつかの先頭の0を取得して保つことである、期待された結果に終わったことはありません。私は間違って何をしていますか?これを修正するにはどこで調べるべきですか?

ありがとうございます

編集:それが動作するように管理。 jobNum = left(r1.Cells(1,1)、6)がjobNum =( "'" & Left(r1.Cells(1,1)))になりました。ハレイ!ここで

+3

先行ゼロを維持するためにセルをテキストとしてフォーマットします – Sorceri

+0

ジョブ番号は数字またはテキストである必要がありますか?テキストの場合は、データを入力する前にセルをテキストとしてフォーマットする@Sorceriの提案を行います。数字の場合は、 "000000"のカスタム書式を使用して、先頭にゼロを付けて6桁の数字を表示します(4は000004、123は000123になります)。 – Blackhawk

+0

...「カスタム書式」と言うとき、私は「書式」機能を意味するのではなく、リボンの「ホーム」タブの書式ドロップダウンを意味します。 – Blackhawk

答えて

4

に先行ゼロを配置する方法です:

Sub LeadingZerosText() 
    Dim N As Long 

    N = 1137 

    Range("A1").NumberFormat = "@" 
    Range("A1").Value = "00" & N 

End Sub 

Sub LeadingZerosNumbers() 
    Dim N As Long 

    N = 1137 

    Range("A1").Value = N 
    Range("A1").NumberFormat = "000000" 
End Sub 

、ここでは、数のように見えるテキストに先行ゼロを配置する方法です

どちらの場合でもA1が表示されます:

enter image description here

+0

ありがとう! jobNum =( "'"&左(r1.Cells(1,1)、6))が動作するように管理 – Selkie

関連する問題