Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 用于向应用程序添加逗号的脚本。所选内容无法正常工作_Vba_Excel - Fatal编程技术网

Vba 用于向应用程序添加逗号的脚本。所选内容无法正常工作

Vba 用于向应用程序添加逗号的脚本。所选内容无法正常工作,vba,excel,Vba,Excel,我最初在网上发现了一个脚本,它允许我在每个X字符处添加一个逗号,问题是它一次只能处理一个选择,我需要这样做9000次 我开始玩弄它,我很快就能让它正常工作,但我需要一些帮助 现在,当我切换“下一个s”和“循环”时,它工作了——但它的格式是这样的 XXXXX,XXXX,X 我希望它看起来像这样: XXXXX,XXXXX,XXXXX 有一件事我很可能会用后面的函数来修复,但它在末尾添加了一个逗号,希望它不要在单词的末尾添加一个逗号 这是我的剧本: Sub CommaAdd() Dim Wor

我最初在网上发现了一个脚本,它允许我在每个X字符处添加一个逗号,问题是它一次只能处理一个选择,我需要这样做9000次

我开始玩弄它,我很快就能让它正常工作,但我需要一些帮助

现在,当我切换“下一个s”和“循环”时,它工作了——但它的格式是这样的

XXXXX,XXXX,X

我希望它看起来像这样:

XXXXX,XXXXX,XXXXX

有一件事我很可能会用后面的函数来修复,但它在末尾添加了一个逗号,希望它不要在单词的末尾添加一个逗号

这是我的剧本:

Sub CommaAdd()
    Dim WorkRng As Range
    Dim s As Range
    Dim x As Long

    xTitleId = "SelectionRange"
    Set WorkRng = Application.Selection
    Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
    Application.ScreenUpdating = False

    For Each s In WorkRng

    s = Selection.Value

    x = Len(s) \ 5
    If Len(s) Mod 5 = 0 Then
        x = x - 1
    End If
    Do Until x <= 0
        s = Left(s, x * 5) & "," & Mid(s, x * 5 + 1)
        x = x - 1
    Selection.Value = s
    Next s
    Loop
End Sub

经过反复试验,它按我想要的方式工作。我想和你分享

Sub CommaAdd()
    Dim WorkRng As Range
    Dim s As String
    Dim a As Object
    Dim x As Long

    xTitleId = "SelectionRange"
    Set WorkRng = Application.Selection
    Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
    Application.ScreenUpdating = False

    For Each a In WorkRng
    s = a.Value
    x = Len(s) \ 5
    If Len(s) Mod 5 = 0 Then
        x = x - 1
    End If
    Do Until x = 0
        s = Left(s, x * 5) & "," & Mid(s, x * 5 + 1)
        x = x - 1
    Loop
    a.Value = s
    Next a
    Application.ScreenUpdating = True
End Sub
Sub CommaAdd()
    Dim WorkRng As Range
    Dim s As String
    Dim a As Object
    Dim x As Long

    xTitleId = "SelectionRange"
    Set WorkRng = Application.Selection
    Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
    Application.ScreenUpdating = False

    For Each a In WorkRng
    s = a.Value
    x = Len(s) \ 5
    If Len(s) Mod 5 = 0 Then
        x = x - 1
    End If
    Do Until x = 0
        s = Left(s, x * 5) & "," & Mid(s, x * 5 + 1)
        x = x - 1
    Loop
    a.Value = s
    Next a
    Application.ScreenUpdating = True
End Sub