Vba 字符串格式丢失
我写这段代码是为了根据分行号码创建电子邮件地址列表。所有地址的格式如下:Vba 字符串格式丢失,vba,excel,string-formatting,Vba,Excel,String Formatting,我写这段代码是为了根据分行号码创建电子邮件地址列表。所有地址的格式如下: lp0000@xxx.co.uk 问题是一些分支编号是3位数字,因此在这些编号之前插入一个零,例如681变为0681。我通过使用自定义数字格式0000实现了这一点,但由于创建电子邮件地址时每个数字的实际值仍然是000,因此起始零丢失 我可以写更多的代码来复制数字格式吗?或者我需要写一些东西来首先找到所有三位数字,然后在它们前面插入一个0 Option Explicit Sub Pop_Emails() Dim br
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
选项显式
子Pop_电子邮件()
暗brno作为字符串
作为整数的Dim i
将工作作为工作表
设置工作=工作表(“1A”)
i=2
我来的时候做
有工作
brno=.Cells(i,1).Value
.Cells(i,3)=“lp”和brno&“@xxxx.co.uk”
以
i=i+1
调试。打印brno
环
端接头
您可以在VBA代码中应用数字格式:
.Cells(i, 3) = "lp" & Format(brno, "0000") & "@xxxx.co.uk"
Excel可能将其视为一个数字,因此它会自动为您转换它。哎呀,谢谢你 不管是谁。。。没什么大不了的,只要用
PadLeft()
来纠正它就行了
brno = .Cells(i, 1).Value.PadLeft(4, "0")
如果(i,1)
是具有自定义格式的“0001”
:
brno = .Cells(i, 1).Value
将为1
,只需获取格式化值:
brno = .Cells(i, 1).Text
回答得好,工作做得很完美。@AlistairWeir:请不要觉得有义务接受最快的答案。因此,高质量的答案比快速的答案更能带来好处。我同意这是一个好答案,并对自己进行了投票,但该程序需要比制作Excel文档的最终用户更聪明。如果自定义格式意外丢失怎么办??对于代码中的填充或格式化,这并不重要。