【问题标题】:Add Comma after Every 11 Digits in ExcelExcel中每11位后添加逗号
【发布时间】:2016-12-15 20:32:57
【问题描述】:

我想在 excel 中每 11 位数字后加逗号,我的数据将是这样的。

ODU88131042ODU88131043ODU88131044ODU88131045ODU65110840ODU65110829ODU65110833ODU65110834ODU88131046ODU88131047ODU88131048ODU88131049ODU88131

我想要这样的答案

ODU88131046,ODU88131047,ODU88131048,ODU88131049,ODU88131050,ODU88131051,ODU88131052,ODU88131053,ODU88131054,ODU88131055,ODU88131056,ODU88131057,ODU88131058,ODU88131059,ODU88131060,ODU88131061,ODU88131062,ODU88131063,ODU88131064,ODU88131065,ODU88131066,ODU88131067,ODU88131068,ODU88131069,ODU88131070,ODU88131071,ODU88131072,ODU88131073,ODU88131074,ODU88131075,ODU88131076,ODU88131077,ODU88131078,ODU88131079,ODU88131080,ODU88131081,ODU88131082,ODU88131083,ODU88131084,ODU88131085,ODU88131086,ODU88131087,ODU88131088,ODU88131089,ODU88131090,

这是一个修复,我希望逗号在 11 位数字中,并且它的行仅在一个单元格中,结果也仅显示在一个单元格中。请帮帮我..

【问题讨论】:

    标签: excel excel-2007 vba


    【解决方案1】:

    这是一个使用 VBA 的方法。选择您要放置逗号的单元格并运行宏。

    Sub AddCommas()
        Dim s As String
        s = Selection.Value
        Dim x As Long
        x = Len(s) \ 11
        If Len(s) Mod 11 = 0 Then
            x = x - 1
        End If
        Do Until x <= 0
            s = Left(s, x * 11) & "," & Mid(s, x * 11 + 1)
            x = x - 1
        Loop
        Selection.Value = s
    End Sub
    

    【讨论】:

    • @pnuts 确实如此,尤其是因为字符串越长,您就必须继续扩展它。我以为有人会提供基于公式的解决方案,但 VBA 对我来说似乎更合理。
    【解决方案2】:
    =SUBSTITUTE(TRIM(SUBSTITUTE(" "&SUBSTITUTE(TEXT(A1,REPT("00000000000 ",EVEN(LEN(C4)))),"00000000000 ",)," 00000000000 ",))," ",",")
    

    【讨论】:

    • 虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
    猜你喜欢
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多