如何向具有现有数据的单元格区域添加后缀

如何向具有现有数据的单元格区域添加后缀

输入:

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

积分不足,无法添加评论。因此发帖...

为了简单起见,

  1. 您可以向工作簿添加新工作表
  2. 应用参考源表的公式=IF(Sheet1!A1="","",Sheet1!A1&"-K")
  3. 复制并拖动源数据集的大小。
  4. 最后,删除超出数据集大小的所有多余的行/列。

- 编辑 -

宏观建议:

请根据需要重命名源表和输出表名称。

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

相关内容