Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3317|回复: 3

[VBA] 023-程序兼容繁简中文版本-疑难千寻千解丛书(VBA)

[复制链接]
发表于 2011-2-9 13:37 | 显示全部楼层 |阅读模式
ET疑难千寻千解丛书之EXCEL2010编程与实践
罗刚君 章兰新 黄朝阳 编著

疑难23
如何让程序兼容简体与繁体中文
如何实现VBA程序在简体中文系统和繁体中文系统中打开时分别显示简体中文和繁体中文,而不是乱码?
è解决方案
利用API函数GetSystemDefaultLCID判断当前操作系统的语言是简体中文还是繁体中文,然后根据语系执行不同的语句。
í操作方法
步骤1
编写一个判断操作系统语言的自定义函数,其值为布尔值,代码如下:

  1. Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long
  2. Function language() As Boolean '开发一个语言函数,用于判断当前操作系统是否为繁体中文
  3. language = (GetSystemDefaultLCID = &H404)
  4. End Function
复制代码
步骤2
以在状态栏显示主机开机后到现在的使用时间为例,调用函数language判断当前操作系统语言是简体中文还是繁体中文,然后调用对应的代码,在状态栏显示开机时间,代码如下:

  1. Private Declare Function GetTickCount Lib "kernel32" () As Long
  2. Sub 状态栏显示电脑使用时间()    '自动适应简繁体
  3.   Application.OnTime Now + TimeValue("00:00:10"), "状态栏显示电脑使用时间"
  4.   '每10秒钟更新一次
  5.   If language Then    '如果是繁体
  6.       Application.StatusBar = "您的電腦已使用" & Round(GetTickCount / 1000 / 60, 0) & "分鐘"
  7.   Else  '否则
  8.       Application.StatusBar = "您的电脑已使用" & Round(GetTickCount / 1000 / 60, 0) & "分钟"
  9.   End If
  10. End Sub
复制代码
API函数的声明语句必须置于模块的顶部,所以以上两段代码中的两句API声明应排在所有过程前面。
步骤3
执行过程“状态栏显示电脑使用时间”,如果当前系统语言是简体中文,那么状态栏效果如所示:
如果当前系统语言是繁体中文,那么状态栏效果如图

=============================
上摘自《EXCEL2010编程与实践》

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2011-2-9 13:37 | 显示全部楼层
回复

使用道具 举报

发表于 2011-2-15 22:51 | 显示全部楼层
回复

使用道具 举报

发表于 2011-4-9 21:06 | 显示全部楼层
{:011:}{:011:}{:011:}{:011:}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-18 18:20 , Processed in 0.213265 second(s), 6 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表