输入:
55958 55959
55960 55961 55962 55963
60346 60347
60348 60349
输出:
55958-K 55959-K
55960-K 55961-K 55962-K 55963-K
60346-K 60347-K
60348-K 60349-K
我想在所有单元格范围中添加后缀“-K”。
首先我尝试使用自定义数字格式 {“#-K”}
这只适用于格式,所以我跳过了它(因为我需要价值)。
然后我尝试一个公式
=IF(A1="","",A1&"-K")
但在这里我需要手动填充公式直到最后一个单元格,所以我手动向下拖动并向右。
当我记录到宏时,它具有带有特定单元格的静态数据,
最后,我需要动态 VBA 来完成这个过程。
Sub Macro2() 'Macro2 Macro
Sheets("Sheet3").Select
Range("D2").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy
Sheets("Process").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Cells.Select
Application.CutCopyMode = False
Selection.ClearContents
Sheets("Process").Select
Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(Sheet3!R[1]C[3]="""","""",Sheet3!R[1]C[3]&""-K"")"
Range("A1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
'Selection.AutoFill Destination:=Range("A1:Z1000"), Type:=xlFillDefault
'Range("A:Z").Select End Sub
答案1
选择您想要处理的单元格并运行:
Sub Adding_a_K()
Dim rng As Range, r As Range, v
Set rng = Intersect(ActiveSheet.UsedRange, Selection)
For Each r In rng
v = r.Value
If v <> "" Then
r.Value = v & "-K"
End If
Next r
End Sub
答案2
积分不足,无法添加评论。因此发帖...
为了简单起见,
- 您可以向工作簿添加新工作表
- 应用参考源表的公式
=IF(Sheet1!A1="","",Sheet1!A1&"-K")
- 复制并拖动源数据集的大小。
- 最后,删除超出数据集大小的所有多余的行/列。
- 编辑 -
宏观建议:
请根据需要重命名源表和输出表名称。
Sub AppendTextToAllCells()
'
' AppendTextToAllCells Macro
'
Range("A1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy
Sheets("Output").Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.FormulaR1C1 = "=IF(Source!RC="""","""",Source!RC&""-K"")"
Range("A1").Select
End Sub