我是excel vba的初学者我有一个巨大的列表,其中一个列中的名字和姓氏没有任何空格或符号,一些名称是大写字母,一些没有大写字母,它们是相同的列可以在他们之间创造空间的可能的宏......或者任何可能的方式......
提前感谢....
答案 0 :(得分:1)
假设您知道名字,那么使用公式的简单示例:
A B
1 AmandaWinslet = "Amanda" & " " & RIGHT(A1, LEN(A1) - LEN("Amanda"))) // result is Amanda Winslet
VBA的做法是:
Sub AddSpace()
Range("A1") = "Amanda" & " " & VBA.Right$(Range("A1"), Len(Range("A1")) - Len("Amanda"))
End Sub
您需要在VBA中循环遍历列表并使FirstName
成为变量。你的帖子假设你有某个地方的名字
答案 1 :(得分:1)
不可靠,但会以简单的名字告诉你。选择名称范围并运行宏。
Sub InsertSpacesInNames()
Dim pos As Long: pos = 0
Dim uc As Long: uc = 0
For Each cell In Selection
For i = 1 To Len(cell.Value)
If Asc((Mid(cell.Value, i, 1))) >= 65 And Asc((Mid(cell.Value, i, 1))) <= 90 Then
uc = uc + 1
pos = i
End If
Next i
If uc = 2 Then
cell.Value = Mid(cell.Value, 1, pos - 1) & " " & Mid(cell.Value, pos, Len(cell.Value))
End If
uc = 0
pos = 0
Next
End Sub
我的输出:
当且仅当:
时,此宏才能正常工作