字符串格式丢失

时间:2012-07-03 13:00:26

标签: excel vba excel-vba string-formatting

我已编写此代码以创建分支编号的电子邮件地址列表。所有地址都采用以下格式: lp0000@xxx.co.uk

问题是一些分支号码是3位数,因此在这些分支号码的前面插入零号码。 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

3 个答案:

答案 0 :(得分:7)

如果(i, 1)"0001"并且采用自定义格式:

 brno = .Cells(i, 1).Value

将为1,以获取格式化的值:

 brno = .Cells(i, 1).Text

答案 1 :(得分:4)

您可以在VBA代码中应用数字格式:

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

答案 2 :(得分:4)

Excel可能会将其视为数字,因此会自动为您转换。哎呀MS。

Anywho ......没什么大不了的,只需用PadLeft()来纠正它。

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