【问题标题】:VBA: Get current month in russian languageVBA:以俄语获取当前月份
【发布时间】:2013-02-27 02:22:12
【问题描述】:

当我的系统语言更改为“俄罗斯”时,我正在尝试获取当前月份,它给出了“??????”。

代码:

Dim presDate as String
presDate = Format(Date,"ddmmmmyyyy")

我上面的代码输出为“??????”。我正在使用 Excel 2010。 请提出答案。

【问题讨论】:

  • 能否展示您在函数定义中使用的完整代码? (我能够让它工作。)
  • 您有 Excel 可访问的西里尔字母吗?
  • @Brad: 是的,俄罗斯月份“фев”,这在单元格中可读,但在模块或宏中不可读。???你有什么建议吗??
  • 只有在 VBA 中调试时才会出现 ????s,还是它们实际上会流入 Excel 单元格?
  • @Brad:只有在宏中它会像这样显示。我不在乎的即时窗口。

标签: excel vba


【解决方案1】:

西里尔字母应该在 VBE 编辑器中正确显示,包括调试窗口,如果您在控制面板 - 区域和语言选项中将 非 Unicode 程序的语言 更改为 俄语 .

【讨论】:

  • Ian:它有效。但我不能要求客户也这样做。所以我拼命地为我的解决方案找到一个。
  • 将 VBEditor 中使用的字体更改为 Courier New Cyr 有帮助吗?
【解决方案2】:

此代码有效。它将被称为 '=mydate(date_value)',其中 date_value 可以是对包含日期的单元格的引用,一个字符串值,例如 '"11/2/96"',一个返回系统的 Excel 函数当前日期(例如,'=mydate(TODAY())' 或 '=mydate(NOW())。

  Option Explicit
  Function mydate(cel As Variant) As String
      If (TypeName(cel) = "Range") Then
          mydate = Format(cel.Value, "mmmm dd yyyy")
      ElseIf TypeName(cel) = "String" Then
          mydate = Format(datevalue(cel), "mmmm dd yyyy")
      ElseIf TypeName(cel) = "Double" Then
          mydate = Format(Round(cel, 0), "mmmm dd yyyy")
      Else  
          mydate = CVErr(xlErrValue)
      End If
  End Function

【讨论】:

  • chuff : mydate 只是一个函数,对吧??你能不能让它在当前的日期时间工作???
  • 我已经扩展了函数以处理更多类型的输入,但正如我之前所说,当函数的参数是包含日期值的单元格时,我开始使用的基本函数有效。我不确定您的系统发生了什么:如果问题出在函数的工作方式上,您会得到 #VALUE!错误。一个名字?错误通常表示输入的函数名没有在VBA中定义。
  • Chuff:我不认为你在这里遇到了我的问题。只有俄语我有这个问题。宏无法处理。(我不在乎的立即窗口)。请将此用于当前日期时间。
【解决方案3】:

当我在即时窗口中执行此操作时

Debug.Print Format(now,"ddmmmmyyyy")

在我得到的即时窗口中

26???????2013

当我这样做时

cells(1,1)=Format(now,"ddmmmmyyyy")

在单元格A1 我明白了

26февраля2013

我认为 VBA IDE 不能处理非拉丁字符(可能仅限于 ASCII)。

【讨论】:

  • //把你的系统语言改成俄语 Code: Sub ss() Dim aa As Variant aa = Format(Now(), "ddmmmmyy") End Sub Please try this.
  • 结果:aa = "26???????13" 在 IDE 中,然后添加行 Cells(1, 1) = aa 并在 Excel 中查看。 A1 = 26февраля13
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多