为什么此代码将代码更改为正确的大小写?
Why this code is making the codes change to Proper case?
此代码正在翻译一个单元格中的所有单词,但只有第一个单词应强制为正确的大小写,其他单词应保留用户编写的大小写,而是强制第一个单词为正确的大小写并将单元格中的所有其他单词小写。所有其他单词应保持其原始大小写。
Sub TraAdd()
Dim translate As Object 'scritping.Dictionary
Set translate = CreateObject("Scripting.Dictionary")
translate("modens") = "modems"
translate("Modens") = "Modems"
translate("modens,") = "modems,"
translate("Modens,") = "Modems,"
translate("Fruteira,") = "Fruit bowl,"
translate("fruteira,") = "fruit bowl,"
translate("Fruteira") = "Fruit bowl"
translate("fruteira") = "fruit bowl"
translate("muletas") = "crutches"
translate("Muletas") = "Crutches"
translate("muletas,") = "crutches,"
translate("Muletas,") = "Crutches,"
Dim Words As Variant
Dim I As Integer
Words = Split(LCase(activecell.Value))
For I = LBound(Words) To UBound(Words)
If translate(Words(I)) <> "" Then Words(I) = translate(Words(I))
Next
activecell.Value = Join(Words)
activecell.Value = Ucase$(Left$(activecell.Value, 1)) & Right$(activecell.Value, Len(activecell.Value) - 1)
End Sub
有什么想法吗?
当您将内容拆分成数组时,您已将所有内容设为小写。
当您将单元格内容拆分为 Words
时删除 LCase
,它应该会如您所愿:
Words = Split(activecell.Value)
此代码正在翻译一个单元格中的所有单词,但只有第一个单词应强制为正确的大小写,其他单词应保留用户编写的大小写,而是强制第一个单词为正确的大小写并将单元格中的所有其他单词小写。所有其他单词应保持其原始大小写。
Sub TraAdd()
Dim translate As Object 'scritping.Dictionary
Set translate = CreateObject("Scripting.Dictionary")
translate("modens") = "modems"
translate("Modens") = "Modems"
translate("modens,") = "modems,"
translate("Modens,") = "Modems,"
translate("Fruteira,") = "Fruit bowl,"
translate("fruteira,") = "fruit bowl,"
translate("Fruteira") = "Fruit bowl"
translate("fruteira") = "fruit bowl"
translate("muletas") = "crutches"
translate("Muletas") = "Crutches"
translate("muletas,") = "crutches,"
translate("Muletas,") = "Crutches,"
Dim Words As Variant
Dim I As Integer
Words = Split(LCase(activecell.Value))
For I = LBound(Words) To UBound(Words)
If translate(Words(I)) <> "" Then Words(I) = translate(Words(I))
Next
activecell.Value = Join(Words)
activecell.Value = Ucase$(Left$(activecell.Value, 1)) & Right$(activecell.Value, Len(activecell.Value) - 1)
End Sub
有什么想法吗?
当您将内容拆分成数组时,您已将所有内容设为小写。
当您将单元格内容拆分为 Words
时删除 LCase
,它应该会如您所愿:
Words = Split(activecell.Value)