增加一个文本框的值

我有一个用户窗体将调出在E栏中input的最后一个值。

这是好的,但我希望用户窗体显示最后一个值增加一个,保存用户不必自己改变值。

例如

“MSA 00-00-0001”< – 这是什么显示,因为这是列的最后一个值不过,我希望用户窗体显示MSA 00-00-0002

通常情况下,您只需使用.Value + 1我假设,但是由于连字符和值字段中的文本,这将不起作用。

假设您将当前值加载到msa_string ,可以使用:

 newvalue="MSA " & format(1+val(replace(right(msa_string,10),"-","")),"00-00-0000") 

如果它不总是启动MSA_那么你可以这样做:

 newvalue=left(msa_string,len(msa_string)-10) & format(1+val(replace(right(msa_string,10),"-","")),"00-00-0000") 

使用你的方法,用你的其他声明将msa_string声明为一个string,然后:

 msa_string=Worksheets("Temp").Range("E1").End(xlDown).Value critCode.Value = left(msa_string,len(msa_string)-10) & format(1+val(replace(right(msa_string,10),"-","")),"00-00-0000") 

您可以使用AutoFillfunction“作弊”一点。

假设您在单元格B1中有"MSA 00-00-0001" ,那么您可以使用AutoFill单元格,单元格B2中的值将为"MSA 00-00-0002" 。 现在您可以将TextBox1.value设置为单元格B2,之后只需清除其中的内容。

 Dim Rng As Range Set Rng = Range("B1") Rng.AutoFill Destination:=Range(Rng, Rng.Offset(1)) '<-- use AutoFill once cell down UserForm1.TextBox1.value = Rng.Offset(1).value Rng.Offset(1).ClearContents ' <-- clear the contents of the added cell