如果单元格包含数字或字母,则将单元格值增加1



我有一个VBA设置,以增加1单元格的数量,当我点击一个按钮

Sub IncreaseCellValue()
'Add 1 to the existing cell value
Range("A1").Value = Range("A1") + 1
End Sub

这一直工作很好为我的发票保存和添加下一个数字,但现在我正在创建发票,以字母开始有时。例如,单元格可以是5766662或W5766662。以上仅适用于数字,所以我尝试了以下操作以使其在没有字母/数字错误的情况下工作,但它不工作

Sub IncreaseCellValue()
Dim value As Variant
'Add 1 to the existing cell value
If IsNumeric(Range("A1").value) Then
Range("A1").value = Range("A1") + 1
Else
value = Split(Range("A1").value, " ")
Range("A1").value = value(0) & " " & (CInt(value(1)) + 1)
End If
End Sub

以上在单元格中工作是W5766662,如果字母和数字之间有空格,它可以工作,但我需要它为W5766662或5766662工作

我认为这很简单,如果你继续使用IsNumeric和Trim来获得适当的值。

添加一个错误陷阱以防万一,它现在看起来像:

Sub IncreaseCellValue()
Dim value As Variant
'Add 1 to the existing cell value
If IsNumeric(Range("A1").value) Then
Range("A1").value = Range("A1") + 1
Else
' Discard first character and trim spaces
value = Trim(Mid(Range("A1").value, 2)) + 1
If IsNumeric(value) Then
Range("A1").value = value
Else
MsgBox "Invalid Cell Value: " & Range("A1").value
End If

End If
End Sub

结束子

在VBA中编写公式,仅供参考。

Sub IncreaseCellValue()
Range("Z1").Formula = "=TEXT(LEFT(A1),)&-LOOKUP(,-RIGHT(A1,ROW($1:$15)))+1"
[A1] = [Z1].Value: [Z1].Delete
End Sub

最新更新