嗨,请查看上面的图片。有没有办法在工作表中的每个单词之前插入数字 我有一张这样的桌子:
╔════════════╦═══════╗
║ 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 ║
╚══════════════╩═════════╝
答案 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