`
阅: 57 | 回: 3
发表于2025/9/4 11:09:46 楼主 
头像 等级:初学者
积分:1
财富值:2.00
身份:普通用户
改了格式,也不行,用表格序列填充也不行
我的个性签名
发表于 2025/9/4 14:33:44   
头像 等级:大师
积分:230
财富值:3
身份:普通用户

您的数值位数已经超过15位,转换为数值会自动以科学计数法显示。

方案一:自定义单元格格式,将前方固定位数作为格式前缀

方案二:建立递增辅助列,用textjoin函数拼接固定前缀

我的个性签名
发表于 2025/9/4 14:56:23   
头像 等级:初学者
积分:1
财富值:2
身份:普通用户

回复:2楼


大神,可以帮忙设置下嘛,不胜感激!
我的个性签名
发表于 2025/9/6 12:48:09   
头像 等级:初学者
积分: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

End Function



安全起见,新建一个文件运行vba以上是ai写的,填充100行

我的个性签名

快速回复

目前不允许游客发表,请 登录 注册 后再发贴。