【问题标题】:Can't use GBP (£) symbol in VBA不能在 VBA 中使用 GBP (£) 符号
【发布时间】:2016-12-19 12:10:17
【问题描述】:

我有英文版的 Excel 和波兰语的区域设置。我尝试制作一个代码,该代码将在数字值之前为单元格格式设置井号。

不幸的是,当我将符号粘贴到 VBA 窗口时,它被转换为“L”。宏记录器还将以这种方式格式化的单元格记录为“L”。 Chr(163) 返回“Ł”。

更改系统语言设置、本地化设置或键盘设置无效。只有在将区域设置(需要重新启动 PC)更改为英语(英国)后,它才能正常工作。有什么方法可以在不更改区域设置的情况下使用此符号?

【问题讨论】:

  • 当前区域设置是什么?你有没有在Chr(i) 中运行一个循环,我是一个增量整数,看看它是不是一个不同的Chr(尽管我对此表示怀疑)?
  • 你能把它转义为 \£
  • 你试过ChrW(163)吗?
  • 为什么需要在 VB 编辑器中像 £ 一样看到它?我的意思是,如果您有L,那么当您将L 粘贴回Excel 时,它应该是£。至少德国人öäüß是这样的。
  • ChrW(163) 有效!我试过循环所有 Chr(i) 并且没有 £。转义也不起作用。粘贴回 Excel 会导致字符显示与 VB 编辑器中相同,即 L 或 Ł。

标签: excel vba


【解决方案1】:

如果您想通过 VBA 将符号应用于格式,请尝试:

Sub Serling()
    Const g = "General"
    dq = Chr(34)
    sterl = " " & ChrW(163)
    s = g & dq & sterl & dq
    Selection.NumberFormat = s
    Selection.Font.Name = "Arial Unicode MS"
End Sub

编辑#1:

对我来说,这真的很酷。如果你想要摄氏度,使用 ChrW(8451):如果你想要华氏度,使用 ChrW(8457),等等。

【讨论】:

  • 只是一个小问题,sterl 应该根据 OP 请求放在数字的前面,但是看你的好解决方案可以很容易地做到这一点。
猜你喜欢
  • 2015-12-13
  • 2011-08-12
  • 1970-01-01
  • 2012-06-09
  • 2011-07-07
  • 2023-02-09
  • 2019-06-05
  • 2011-05-12
相关资源
最近更新 更多