Excel 需要宏将逗号添加到文本字符串的开头
我需要一个宏将逗号附加到文本字符串列的开头。我自己录制了该操作,但它仅限于C列(通常,我需要使用的文本字符串会显示在不同的列中),并且还将范围的应用限制在我录制该操作的工作表中的特定行数上(在本例中为114行) 以下是原始记录宏输出:Excel 需要宏将逗号添加到文本字符串的开头,excel,vba,Excel,Vba,我需要一个宏将逗号附加到文本字符串列的开头。我自己录制了该操作,但它仅限于C列(通常,我需要使用的文本字符串会显示在不同的列中),并且还将范围的应用限制在我录制该操作的工作表中的特定行数上(在本例中为114行) 以下是原始记录宏输出: Sub AddCommaToESIID() ' ' AddCommaToESIID Macro ' ' Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Sub AddCommaToESIID()
'
' AddCommaToESIID Macro
'
'
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Columns("E:E").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("C2").Select
ActiveCell.FormulaR1C1 = ","
Range("C2").Select
Selection.AutoFill Destination:=Range("C2:C114")
Range("C2:C114").Select
Range("E2").Select
ActiveCell.FormulaR1C1 = "=RC[-2]&RC[-1]"
Range("E2").Select
Selection.AutoFill Destination:=Range("E2:E114")
Range("E2:E114").Select
Selection.Copy
Range("D2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Columns("E:E").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Columns("C:C").Select
Selection.Delete Shift:=xlToLeft
End Sub
我想对此进行修改,以实现以下目标:
提前感谢您的帮助 这将更改您选择的任何范围内的所有非公式
Sub AddCommaToESIID()
Dim rCell As Range
If TypeName(Selection) = "Range" Then
For Each rCell In Selection.Cells
If Not rCell.HasFormula Then
rCell.Value = "," & rCell.Value
End If
Next rCell
End If
End Sub
如果您有Office 365,请使用工作表公式TextJoin()。如果不搜索它,您将发现许多vba UDF模仿了这种用法。