如何使用vba在Excel中制作蒙版?

我已经在Excel中创build了一个用户表单,可以说3个字段。 name1brc1tmx1 。 用户可以在字段tmx1input1到9999 tmx1任意数字。我希望他点击发送button的时间发送一个屏蔽号码如下0000到另一个名为data.xls例如,如果用户在字段tmx1 21我想发送0021的程序,如果他input321发送0321,如果是4个数字的话就可以了,依此类推。

我的部分代码如下所示:

 Private Sub cmdSend_Click() Workbooks.Open Filename:="Z:\Tameio\data.xls" Range("A1").Select ActiveCell.End(xlDown).Select lastrow = ActiveCell.Row Cells(lastrow + 1, 1).Value = name1.Text Cells(lastrow + 1, 2).Value = brc1.Text Cells(lastrow + 1, 3).Value = tmx1.Text Range("A1").Select ActiveWorkbook.Close SaveChanges:=True 

您可以使用Formatfunction进行屏蔽。 以这个函数存根为例:

 Public Function Masking(Data As Integer) As String Masking = Format(Data, "0000") End Function Sub Test_Masking() Debug.Print Masking(1) Debug.Print Masking(12) Debug.Print Masking(123) Debug.Print Masking(1234) Debug.Print Masking(12345) End Sub 

结果:

 0001 0012 0123 1234 12345 

将其应用于您的案例:

 Private Sub CommandButton1_Click() Workbooks.Open Filename:="Z:\Tameio\data.xls" Range("A1").Select ActiveCell.End(xlDown).Select lastrow = 10 ' change this to whatever you prefer Cells(lastrow + 1, 1).Value = name1.Text Cells(lastrow + 1, 2).Value = brc1.Text Cells(lastrow + 1, 3).Value = "'" & Format(tmx1.Text, "0000") Range("A1").Select ActiveWorkbook.Close SaveChanges:=True End Sub 

编辑:

基于Mat's Mug的出色build议,这里有一个更多function的格式化function:

 Public Function Masking(Data As Integer, TotalLengthWithZeroPad As Integer) As String Masking = Format(Data, String(TotalLengthWithZeroPad, "0")) End Function Sub Test_Masking() Dim totallength As Integer totallength = 10 ' how long will our string's total length be? Debug.Print Masking(1, totallength) Debug.Print Masking(12, totallength) Debug.Print Masking(123, totallength) Debug.Print Masking(1234, totallength) Debug.Print Masking(12345, totallength) End Sub 

结果

 0000000001 0000000012 0000000123 0000001234 0000012345 
Interesting Posts