我正在使用Excel 2013,而我正在尝试进行相当复杂的文本转换。它是这样的:假设我有以下字符串:
user_id
profile_type_new
user_refNumber
campaign_period2
我正在尝试做的是找到一种方法:
作为参考,字符串应该像这样结束:
userId
profileTypeNew
userRefNumber
campaignPeriod2
我一直在努力寻找能够做到这一点的功能(或一组功能),而没有成功。任何人都可以指出我正确的方向或提供一些如何实现这一目标的例子吗?
提前致谢,
莱斯特
答案 0 :(得分:4)
=SUBSTITUTE(PROPER(A1),"_","")
首先,将其转换为正确的情况。 Proper(A1)
然后,删除所有下划线。 SUBSTITUTE(......,"_","")
答案 1 :(得分:1)
怎么样:
Sub XformData()
Dim r As Range, U As String, N As Long
U = "_"
For Each r In ActiveSheet.UsedRange
If r.Value <> "" Then
s = r.Value
N = InStr(1, s, U)
If N <> 0 Then
r.Value = Mid(s, 1, N - 1) & UCase(Mid(s, N + 1, 1)) & Mid(s, N + 2)
End If
End If
Next r
End Sub
答案 2 :(得分:0)
事实证明我必须编写自己的VBA函数来实现它。感谢所有指出我正确方向的人。
仅供参考,这是功能:
Public Function CamelCase(ByVal text As String) As String
Dim temp, loopresult As String
Dim i As Integer
Dim capitalize As Boolean
For i = 1 To Len(text)
temp = Mid(text, i, 1)
If i = 1 Then
loopresult = loopresult & LCase(temp)
ElseIf temp = "_" Then
capitalize = True
ElseIf IsNumeric(temp) Then
loopresult = loopresult & temp
capitalize = True
ElseIf capitalize = True Then
loopresult = loopresult & UCase(temp)
capitalize = False
Else
loopresult = loopresult & temp
End If
Next i
CamelCase = loopresult
End Function