2017-01-26 42 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 

好的,好吧,如果我不能正確讀取它,也許我可以手動添加它? (預計長度爲6,如果長度爲4我有一個問題,註冊,和我需要在兩個附加前導0)

最後,我試圖得到它在第一時間正確讀取:

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),6)),現在所有的工作。歡呼!

+3

將單元格格式化爲文本以保持前導零 – Sorceri

+0

您是否需要jobnum作爲數字或文本?如果是文本,請在輸入數據之前採取@Solceri關於將單元格格式化爲文本的建議。如果是數字,只需使用「000000」的自定義格式將每個數字填充爲帶前導零的6位數字(4爲000004,123爲000123)。 – Blackhawk

+0

...當我說「自定義格式」時,我不是指格式化功能,而是指功能區中「主頁」選項卡上的格式下拉菜單。 – Blackhawk

回答

4

這裏是放置前導零爲方式:

Sub LeadingZerosNumbers() 
    Dim N As Long 

    N = 1137 

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

,這裏是放置前導零到文本,看起來像一個號碼的方式:

Sub LeadingZerosText() 
    Dim N As Long 

    N = 1137 

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

End Sub 

在這兩種情況下A1將顯示:

enter image description here

+0

謝謝! jobNum =(「'」&Left(r1.Cells(1,1),6))設法讓它起作用 – Selkie