我正在尝试获取当前月份,而我的系统语言更改为“俄罗斯”,它给出了“??????”。
代码:
Dim presDate as String
presDate = Format(Date,"ddmmmmyyyy")
我上面的代码输出为“??????”。我正在使用 Excel 2010。请提出答案。
如果在控制面板 - 区域和语言选项中将非 Unicode 程序的语言更改为俄语,西里尔字母应在 VBE 编辑器(包括调试窗口)中正确显示。
此代码有效。它将被称为 '=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
当我在即时窗口中执行此操作时
Debug.Print Format(now,"ddmmmmyyyy")
在我得到的即时窗口中
26???????2013
当我这样做的时候
cells(1,1)=Format(now,"ddmmmmyyyy")
在牢房里A1
我得到
26февраля2013
我认为 VBA IDE 不能做非拉丁字符(可能仅限于 ASCII)。