我需要一个宏来将逗号附加到文本字符串列的开头。我自己录制了这个动作,但是它仅限于C列(通常,我需要执行此操作的文本字符串出现在不同的列中),并且还将范围的应用限制为工作表中的特定行数I记录下来(在这种情况下,114)。
这是原始的录制宏输出:
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
我想修改它以实现以下目的:
使宏应用于我选择的任何列,而不是列C
一旦我选择了一个列,请将宏应用于我正在处理的特定工作表中的许多行。
提前感谢您的帮助!
答案 0 :(得分:0)
这将更改您选择的任何范围内的所有非公式
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