如何在excel中的每个单词之前插入数字

时间:2016-01-08 12:32:11

标签: excel vba

http://imgur.com/ekrjv0D

嗨,请查看上面的图片。有没有办法在工作表中的每个单词之前插入数字 我有一张这样的桌子:

╔════════════╦═══════╗
║     Colour ║       ║
╠════════════╬═══════╣
║            ║ Blue  ║
╠════════════╬═══════╣
║            ║ red   ║
╠════════════╬═══════╣
║            ║ pink  ║
╠════════════╬═══════╣
║     Fruidm ║       ║
╠════════════╬═══════╣
║            ║ mango ║
╠════════════╬═══════╣
║            ║ Apple ║
╚════════════╩═══════╝

输出应该是这样的:

╔══════════════╦═════════╗
║     1/Colour ║         ║
╠══════════════╬═════════╣
║              ║ 2/Blue  ║
╠══════════════╬═════════╣
║              ║ 3/red   ║
╠══════════════╬═════════╣
║              ║ 4/pink  ║
╠══════════════╬═════════╣
║     5/Fruidm ║         ║
╠══════════════╬═════════╣
║              ║ 6/mango ║
╠══════════════╬═════════╣
║              ║ 7/Apple ║
╚══════════════╩═════════╝

或者像这样:

╔══════════════╦═════════╗
║     1/Colour ║         ║
╠══════════════╬═════════╣
║              ║ 3/Blue  ║
╠══════════════╬═════════╣
║              ║ 4/red   ║
╠══════════════╬═════════╣
║              ║ 5/pink  ║
╠══════════════╬═════════╣
║     2/Fruidm ║         ║
╠══════════════╬═════════╣
║              ║ 6/mango ║
╠══════════════╬═════════╣
║              ║ 7/Apple ║
╚══════════════╩═════════╝

2 个答案:

答案 0 :(得分:1)

试试这个短宏:

Sub marine()
   Dim n As Long
   Dim r As Range
   n = 1

   For Each r In ActiveSheet.UsedRange
      If r.Value <> "" Then
         r.Value = n & "/" & r.Value
         n = n + 1
      End If
   Next r
End Sub

答案 1 :(得分:1)

已发布的另一个变体:

Sub test()
    Dim cl As Range, i&
    Set cl = Cells.Find("*")
    For i = 1 To WorksheetFunction.CountA(Cells)
        If Not cl Is Nothing Then
            cl.Value2 = i & "/" & cl.Value2
            Set cl = Cells.FindNext(cl)
        Else
            Exit For
        End If
    Next i
End Sub

针对其他问题进行了更新:

  

无论如何都要删除数字并在开头斜线   每个单词

你可以用这个:

Sub test2()
   Dim n&, r As Range:  n = 1
   For Each r In ActiveSheet.UsedRange
      If r.Value2 Like "*/*" Then
         r.Value2 = Split(r.Value2, "/")(1)
         n = n + 1
      End If
   Next r
End Sub