用VBA制作Excel翻译程序.doc_第1页
用VBA制作Excel翻译程序.doc_第2页
用VBA制作Excel翻译程序.doc_第3页
用VBA制作Excel翻译程序.doc_第4页
用VBA制作Excel翻译程序.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用VBA制作Excel翻译程序。目的:由于经常进行日文Excel文档的翻译,所以希望用编写VBA程序能让机器自动翻译一部分,并且有中日对译表可以自己编辑和修改。 Lib是中日对译表名。 UserForm是用户界面,以下有选择要翻译表名的选项,“日翻中”、“中翻日”、“中日对译表维护”等三个按键。 功能一览: 1 程序的调用。 2 应用界面。 3 对译表的建立。 4 每一个单词的替换(可用宏录制) 5 更换下一个单词,直到所有单词都替换完成,需要循环语句。(难点) 5.1 更换关键字。(不知怎么会出错,说下标越界,不能排错。卡在这里了) 5.2 换成下一个关键字,用循环语句。(还没做到这一步,有一定难度,不过应该能解决吧) 6 问题出现:单词替换时,不能Ctrl+Z返回上一步状态。防止替换错误,需要提前备份。(现在先不管这一步了,先把程序做出来再说)编程设计: 我写了一下VBA,但是试运行时出现下标越界的报错,但不知怎么纠错。请各位大侠帮忙! Private Sub UserForm1_tran() MsgBox 程序测试开始! Sheets(Temp).Cells(1, 1).Value = 1 Temp是要处理的文档,可改名。 Lib是字典库。 Do Dim MyRange As Range MyRange = Sheets(lib).Range(A1) Sheets(temp).Cells(A2) = Sheets(lib).Range(MyRange).Value If ActiveSheet.Cells(1, 6).Value = Then Quit End If 变量的使用:错误方式:n=单元格的值;另一个值等于=n。 正确方式:n=单元格的位置,另一个单元格的值=n位置的值。 Dim n n = Sheets(lib).Cells(A3) A3 Debug.Print a(i, 1) & & a(i, 2) Loop 选择翻译的范围 进行替换 注意保证字符编码正确 条件循环,将整个对译表的对应翻译全部替换。 Range(C5).Select Selection.Copy With Application.ReplaceFormat.Font .Name = 宋体 .Subscript = False End With Cells.Replace What:=, Replacement:=项目, LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=True TextBox1.Value = 程序测试完毕! MsgBox 日翻中已执行完毕! End Sub 已完成步骤:过程的代入;文本框、消息框的试用;表值的赋值;注释的加入; 未完成的步骤:变量的使用;表格的替换;字体编码的确保;条件循环语句的使用;能够恢复;要翻译文件的选择; 问题补充:程序是凭自己水平尽力做出来的,高手可以帮忙揪一下错,如果看不懂也可以将程序重新设计一下。谢谢! 希望各位帮忙的兄弟也可以拿一下具体的代码上来,谢谢! 对我有用0 丢个板砖0 引用 举报 管理 TOP 回复次数:4 wang405 等级: #1楼 得分:0回复于:2008-10-04 20:46:36我花了近一个小时给你又是写又是测试,终于弄出来了你要的.代码不长,但基本是你要的.Sub fanyi() On Error GoTo fanyierr Dim cn As String 中文 Dim ji As String 日文 Dim myrange As Range 用户选择区域 Set myrange = Application.InputBox(请选择需要翻译的单元格区域:, 选择, Type:=8) If Not myrange Is Nothing Then n = Sheets(中日表).UsedRange.Rows.Count 中日表中A列日文,B列中文 If n = 1 Then Exit Sub If MsgBox(你是否要执行文件翻译功能?, 32 + vbYesNo, 询问) = vbYes Then Sheets(原文).Copy Before:=Sheets(原文) ActiveSheet.Name = 备份 & Format(Date, YY-MM-DD) & Format(Time, hh nn ss) 日期+时间不会重复 For i = 2 To n ji = Sheets(中日表).Range(A & i) cn = Sheets(中日表).Range(B & i) myrange.Interior.ColorIndex = 3 myrange.Replace What:=ji, Replacement:=cn, LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Next i End If End If Sheets(原文).Select MsgBox 翻译成功,翻译前的文件已经为您备份, 68 + vbOKOnly, OK Exit Subfanyierr: MsgBox err.Description, 16, ErrEnd Subcode=VB/code 对我有用0 丢个板砖0 引用 举报 管理 TOP 精华推荐:同时问其他OO高手:我的类该怎样安排 wang405 等级: #2楼 得分:0回复于:2008-10-04 20:49:05VB code对了那个添加颜色的标记你把他放到替换程序的后面Sub fanyi() On Error GoTo fanyierr Dim cn As String 中文 Dim ji As String 日文 Dim myrange As Range 用户选择区域 Set myrange = Application.InputBox(请选择需要翻译的单元格区域:, 选择, Type:=8) If Not myrange Is Nothing Then n = Sheets(中日表).UsedRange.Rows.Count 中日表中A列日文,B列中文 If n = 1 Then Exit Sub If MsgBox(你是否要执行文件翻译功能?, 32 + vbYesNo, 询问) = vbYes Then Sheets(原文).Copy Before:=Sheets(原文) ActiveSheet.Name = 备份 & Format(Date, YY-MM-DD) & Format(Time, hh nn ss) 日期+时间不会重复 For i = 2 To n ji = Sheets(中日表).Range(A & i) cn = Sheets(中日表).Range(B & i) myrange.Interior.ColorIndex = 3 myrange.Replace What:=ji, Replacement:=cn, LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论