0

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

代码:

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

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

4

3 回答 3

1

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

于 2013-02-26T18:22:12.477 回答
0

此代码有效。它将被称为 '=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
于 2013-02-26T13:57:17.273 回答
0

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

Debug.Print Format(now,"ddmmmmyyyy")

在我得到的即时窗口中

26???????2013

当我这样做的时候

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

在牢房里A1我得到

26февраля2013

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

于 2013-02-26T15:21:38.003 回答