【问题标题】:VBA propercase in language translation code fix语言翻译代码修复中的 VBA 正确大小写
【发布时间】:2016-05-12 15:11:05
【问题描述】:

我的翻译代码没有按我的意愿工作...它应该只在单元格的第一个单词中使用正确的大小写,但它在单元格中的所有单词中都使用正确的大小写。

关于如何使其翻译并仅在活动单元格中的第一个单词上使用正确大小写的任何想法?

代码如下:

 Sub traducaobeta2()

 Dim translate As Object 'scritping.Dictionary

Set translate = CreateObject("Scripting.Dictionary")

translate("cadeira") = "chair"
translate("cadeira,") = "chair"
translate("cadeiras") = "chairs"
translate("criado mudo") = "night stand"
translate("criado-mudo") = "night stand"
translate("mesa") = "table"
translate("mesas") = "tables"
translate("e") = "and"
' the list goes on...


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)
For Each x In activecell
x.Value = Application.Proper(x.Value)
Next
activecell.Offset(0, 1).Select

End Sub

【问题讨论】:

  • 您可以在字典中应用正确的大小写并使用 StrComp() 来测试不区分大小写的等效性

标签: excel uppercase language-translation vba


【解决方案1】:

只需将第一个字母设为大写即可:

ActiveCell.value = UCase$(Left$(ActiveCell.value, 1)) & Right$(ActiveCell.value, Len(ActiveCell.value) - 1)

还可以使用With 块来节省输入:

With ActiveCell
    .value = UCase$(Left$(.value, 1)) & Right$(.value, Len(.value) - 1)
End With

【讨论】:

  • 完美运行(:非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-08
  • 2014-12-21
  • 1970-01-01
相关资源
最近更新 更多