VBA:用俄语获取当前月份

时间:2013-02-26 12:00:34

标签: excel-vba vba excel

当我的系统语言改为“俄罗斯”时,我试图获得当前月份,它给出了“??????”。

代码:

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

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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

答案 2 :(得分:0)

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

Debug.Print Format(now,"ddmmmmyyyy")

在我看到的即时窗口中

26???????2013

当我做的时候

cells(1,1)=Format(now,"ddmmmmyyyy")
单元格A1中的

我得到

26февраля2013

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