ET疑难千寻千解丛书之EXCEL2010编程与实践 罗刚君 章兰新 黄朝阳 编著
疑难23
如何让程序兼容简体与繁体中文 如何实现VBA程序在简体中文系统和繁体中文系统中打开时分别显示简体中文和繁体中文,而不是乱码? è解决方案 利用API函数GetSystemDefaultLCID判断当前操作系统的语言是简体中文还是繁体中文,然后根据语系执行不同的语句。 í操作方法 步骤1
编写一个判断操作系统语言的自定义函数,其值为布尔值,代码如下:
- Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long
- Function language() As Boolean '开发一个语言函数,用于判断当前操作系统是否为繁体中文
- language = (GetSystemDefaultLCID = &H404)
- End Function
复制代码步骤2
以在状态栏显示主机开机后到现在的使用时间为例,调用函数language判断当前操作系统语言是简体中文还是繁体中文,然后调用对应的代码,在状态栏显示开机时间,代码如下:
- Private Declare Function GetTickCount Lib "kernel32" () As Long
- Sub 状态栏显示电脑使用时间() '自动适应简繁体
- Application.OnTime Now + TimeValue("00:00:10"), "状态栏显示电脑使用时间"
- '每10秒钟更新一次
- If language Then '如果是繁体
- Application.StatusBar = "您的電腦已使用" & Round(GetTickCount / 1000 / 60, 0) & "分鐘"
- Else '否则
- Application.StatusBar = "您的电脑已使用" & Round(GetTickCount / 1000 / 60, 0) & "分钟"
- End If
- End Sub
复制代码API函数的声明语句必须置于模块的顶部,所以以上两段代码中的两句API声明应排在所有过程前面。 步骤3
执行过程“状态栏显示电脑使用时间”,如果当前系统语言是简体中文,那么状态栏效果如图所示: 如果当前系统语言是繁体中文,那么状态栏效果如图:
============================= 以上摘自《EXCEL2010编程与实践》 |