阅: 57 | 回: 3

-
积分:2
-
财富值:2
-
身份:普通用户
Sub FillLargeNumbersWithString()
Dim i As Long
Dim currentNum As String
Dim ws As Worksheet
Set ws = ActiveSheet
currentNum = "3240990000001983" ' 起始值(字符串)
' 设置整列格式为文本,防止 Excel 自动转换
ws.Columns(1).NumberFormat = "@"
' 循环 100 次,每次加 1
For i = 1 To 100
ws.Cells(i, 1).Value = currentNum
currentNum = AddOneToString(currentNum) ' 自定义函数:字符串加 1
Next i
End Sub
' 自定义函数:对大数字字符串加 1
Function AddOneToString(numStr As String) As String
Dim result As String
Dim carry As Integer
Dim digit As Integer
Dim i As Integer
result = ""
carry = 1 ' 我们要加 1
' 从右往左逐位处理
For i = Len(numStr) To 1 Step -1
digit = Val(Mid(numStr, i, 1)) + carry
If digit = 10 Then
digit = 0
carry = 1
Else
carry = 0
End If
result = CStr(digit) & result
Next i
' 如果最后还有进位(如 999 + 1 = 1000)
If carry = 1 Then
result = "1" & result
End If
AddOneToString = result
Dim i As Long
Dim currentNum As String
Dim ws As Worksheet
Set ws = ActiveSheet
currentNum = "3240990000001983" ' 起始值(字符串)
' 设置整列格式为文本,防止 Excel 自动转换
ws.Columns(1).NumberFormat = "@"
' 循环 100 次,每次加 1
For i = 1 To 100
ws.Cells(i, 1).Value = currentNum
currentNum = AddOneToString(currentNum) ' 自定义函数:字符串加 1
Next i
End Sub
' 自定义函数:对大数字字符串加 1
Function AddOneToString(numStr As String) As String
Dim result As String
Dim carry As Integer
Dim digit As Integer
Dim i As Integer
result = ""
carry = 1 ' 我们要加 1
' 从右往左逐位处理
For i = Len(numStr) To 1 Step -1
digit = Val(Mid(numStr, i, 1)) + carry
If digit = 10 Then
digit = 0
carry = 1
Else
carry = 0
End If
result = CStr(digit) & result
Next i
' 如果最后还有进位(如 999 + 1 = 1000)
If carry = 1 Then
result = "1" & result
End If
AddOneToString = result
End Function
安全起见,新建一个文件运行vba以上是ai写的,填充100行
我的个性签名