3

我编写了这段代码来从分支号码创建一个电子邮件地址列表。所有地址均采用以下格式: 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
4

3 回答 3

7

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

 brno = .Cells(i, 1).Value

将是1,简单地获取格式化值:

 brno = .Cells(i, 1).Text
于 2012-07-03T13:04:12.380 回答
4

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

.Cells(i, 3) = "lp" & Format(brno, "0000") & "@xxxx.co.uk"
于 2012-07-03T13:03:06.547 回答
4

Excel 可能会将其视为一个数字,因此它会自动为您转换它。哎呀,谢谢女士。

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

brno = .Cells(i, 1).Value.PadLeft(4, "0")
于 2012-07-03T13:04:01.433 回答