增加一个文本框的值
我有一个用户窗体将调出在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")
您可以使用AutoFill
function“作弊”一点。
假设您在单元格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