将文本框值增加一
Increasing Text box value by one
我有一个用户表单,它将显示在 E 列中输入的最后一个值。
这很好,但是我希望用户表单显示最后一个值增加 1,这样用户就不必自己更改值。
例如
"MSA 00-00-0001" <-这是显示的内容,因为这是列中的最后一个值
但是我希望用户表单显示 MSA 00-00-0002
我假设通常您只使用 .Value + 1,但是由于值字段中的连字符和文本,这将不起作用。
您可以 "Cheat" 一点,使用 AutoFill
。
假设您在单元格 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
假设您将当前值加载到 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 声明为带有其他声明的字符串,然后:
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")
我有一个用户表单,它将显示在 E 列中输入的最后一个值。
这很好,但是我希望用户表单显示最后一个值增加 1,这样用户就不必自己更改值。
例如
"MSA 00-00-0001" <-这是显示的内容,因为这是列中的最后一个值 但是我希望用户表单显示 MSA 00-00-0002
我假设通常您只使用 .Value + 1,但是由于值字段中的连字符和文本,这将不起作用。
您可以 "Cheat" 一点,使用 AutoFill
。
假设您在单元格 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
假设您将当前值加载到 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 声明为带有其他声明的字符串,然后:
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")