准备宏,在列中每10个数字后添加逗号

时间:2017-05-13 16:28:55

标签: vba excel-vba excel-formula excel

我试图在列中每10位数后添加一个逗号。但是我已经成功创建了宏。

与此同时,我面临另一个挑战,因为数据有20列(范围A1:A20)Raw Data snapshot,我需要每次点击不同的列来运行宏。

请帮助是否可以在所有列的单个宏中完成。

1 个答案:

答案 0 :(得分:0)

请尝试这个,它应该适合你,

Sub AddCommas()
Dim s As String
Dim i As Long
Dim j As Long
For k = 1 To 20
For i = 1 To Rows.Count
    s = ""
    If Not IsEmpty(Cells(i, k).Value) And Int(Len(Cells(i, k)) / 10) >= 1 Then
        For j = 1 To Int(Len(Cells(i, k).Value) / 10) + 1
            If j = 1 Then
                s = s & Left(Cells(i, k).Value, j * 10) & ","
            Else
            If j = (Int(Len(Cells(i, k).Value) / 10) + 1) Or (Len(Cells(i, k).Value) / 10) = j Then
                s = s & Mid(Cells(i, k).Value, ((j - 1) * 10) + 1, 10)
            Else
                s = s & Mid(Cells(i, k).Value, ((j - 1) * 10) + 1, 10) & ","
            End If
            End If
        Next j
        Cells(i, k).Value = s
    End If
Next i
Next k
End Sub

根据起始行位置和列数调整k变量和i变量。希望这会有所帮助。