2012-07-03 98 views
3

我已經編寫了此代碼以從分支號碼創建電子郵件地址列表。所有地址的格式如下: [email protected]字符串格式丟失

問題是某些分支號碼是3位數,所以在這些例如0之前插入零。 681變爲0681.我通過使用自定義數字格式0000來做到這一點,但是由於每個電子郵件地址的實際值仍然是000,所以開始的零會丟失。

我可以寫更多的代碼來複制數字格式,還是我需要寫一些東西來先找到所有的三位數字,然後在它們前面插入一個0。

Option Explicit 
Sub Pop_Emails() 
    Dim brno As String 
    Dim i As Integer 
    Dim wks As Worksheet 

    Set wks = Sheets("1A") 
    i = 2 
    Do While i <> 191 
     With wks 
      brno = .Cells(i, 1).Value 
      .Cells(i, 3) = "lp" & brno & "@xxxx.co.uk" 
     End With 
    i = i + 1 
    Debug.Print brno 
    Loop 
End Sub 

回答

7

如果(i, 1)"0001"與自定義格式:

brno = .Cells(i, 1).Value 

1,讓簡單的格式化值:

brno = .Cells(i, 1).Text 
+1

@AlistairWeir:請不要覺得有責任接受最快的答案。質量好的答案不僅僅是速度快的答案。 – eggyal

+1

這是一個很好的答案,我同意並贊成我自己,但程序需要比製作Excel文檔的最終用戶更聰明。如果自定義格式意外丟失怎麼辦?在代碼中使用填充或格式設置,這無關緊要。 –

+0

+1是的你是對的:) –

4

您可以在VBA代碼中應用的數字格式:

.Cells(i, 3) = "lp" & Format(brno, "0000") & "@xxxx.co.uk" 
+0

很好的回答,完全沒有工作。 –

4

Excel中很可能看到它作爲一個數字,所以它會自動將其轉換爲您服務。 Gee謝謝MS。

Anywho ...沒什麼大不了的,只需用PadLeft()來糾正它。

brno = .Cells(i, 1).Value.PadLeft(4, "0")