3

このコードを書いて、支店番号から電子メール アドレスのリストを作成しました。すべてのアドレスは次の形式です。 lp0000@xxx.co.uk

問題は、支店番号の一部が 3 桁であるため、これらの前にゼロが挿入されることです。たとえば、681 は 0681 になります。カスタム番号形式を使用してこれを行いました0000が、それぞれの実際の値は000、電子メール アドレスが作成されたときのままであるため、開始ゼロが失われます。

数値形式をコピーするコードをさらに記述できますか、それとも最初に 3 桁の数値をすべて検索してその前に 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 では数値と​​して認識される可能性が高いため、自動的に変換されます。ええ、MS に感謝します。

誰でも... 大したことではありませんPadLeft()。修正するために使用してください。

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