如题。我在vb6程序中生成了word文件,但是打开时提示“Micsoft office word 需要转换器以正确显示该文件”,每次生成的word文件都会这样,我安装的时office2003.
但是用vb生成excel文件,打开时就不会出现此提示。就算先生成txt文件,然后重命名为word文件,打开此word文件时,还是会出现上述提示?请问是怎么回事?
我是从硬盘安装的office,没有office安装盘,就算安装也找不到想要的.msi文件啊。不安装也到能正常显示word文件,如果是刚生成的word文件,关闭word还是要求保存,并且关机时还是会提示。
不知道是不是vb生成的word时的原因?
我用两种方法生成的word都有这种情况,生成word的代码如下:
1.通过dialog生成保存word。
'导出结果
On Error GoTo errCode
CommonDialog1.DialogTitle = "导出统计结果"
CommonDialog1.FileName = Trim(comPatientId.Text) '默认文件名
CommonDialog1.Filter = "word文件(*.doc) (可选择其他文件格式;或直接输入任意文件格式后缀)|*.doc|Excel文件(*.xls)|*.xls|文本文件(*.txt)|*.txt"
CommonDialog1.ShowSave Dim mfile As String
mfile = CommonDialog1.FileName '得到目标文件的路径
If Trim(mfile) = "" Then
Exit Sub
End If
If Dir(mfile) <> "" Then
If MsgBox(Dir(mfile) & " 文件已经存在,是否替换?", vbYesNo + vbQuestion + vbDefaultButton2, "警告") = vbNo Then
Exit Sub
End If
End If
Open mfile For Output As #1 Print #1, "患者治疗次数"
Print #1, '换行
Print #1, "患者编号:"; comPatientId.Text
Print #1, "姓 名:"; comPatientName.Text
Print #1, "总次数:"; txtTotal.Text
Print #1, "每月治疗次数:"
For i = 0 To List1.ListCount - 1
Print #1, List1.List(i); '后面加上分号或逗号,就不会多一个空行
Next Close #1 '关闭文件
2.直接创建word应用程序
Dim wordAPP As Object, myWord As Object
'获取应用程序所在目录,生成Word对象,并打开相对路径的文档模板
Set wordAPP = CreateObject("Word.Application")
Set myWord = wordAPP.Documents.Open(App.Path & "\printfile\patientInfo.doc")
'打开word文档,用于向word输出患者信息
Open App.Path & "\printfile\patientInfo.doc" For Output As #1
但是用vb生成excel文件,打开时就不会出现此提示。就算先生成txt文件,然后重命名为word文件,打开此word文件时,还是会出现上述提示?请问是怎么回事?
我是从硬盘安装的office,没有office安装盘,就算安装也找不到想要的.msi文件啊。不安装也到能正常显示word文件,如果是刚生成的word文件,关闭word还是要求保存,并且关机时还是会提示。
不知道是不是vb生成的word时的原因?
我用两种方法生成的word都有这种情况,生成word的代码如下:
1.通过dialog生成保存word。
'导出结果
On Error GoTo errCode
CommonDialog1.DialogTitle = "导出统计结果"
CommonDialog1.FileName = Trim(comPatientId.Text) '默认文件名
CommonDialog1.Filter = "word文件(*.doc) (可选择其他文件格式;或直接输入任意文件格式后缀)|*.doc|Excel文件(*.xls)|*.xls|文本文件(*.txt)|*.txt"
CommonDialog1.ShowSave Dim mfile As String
mfile = CommonDialog1.FileName '得到目标文件的路径
If Trim(mfile) = "" Then
Exit Sub
End If
If Dir(mfile) <> "" Then
If MsgBox(Dir(mfile) & " 文件已经存在,是否替换?", vbYesNo + vbQuestion + vbDefaultButton2, "警告") = vbNo Then
Exit Sub
End If
End If
Open mfile For Output As #1 Print #1, "患者治疗次数"
Print #1, '换行
Print #1, "患者编号:"; comPatientId.Text
Print #1, "姓 名:"; comPatientName.Text
Print #1, "总次数:"; txtTotal.Text
Print #1, "每月治疗次数:"
For i = 0 To List1.ListCount - 1
Print #1, List1.List(i); '后面加上分号或逗号,就不会多一个空行
Next Close #1 '关闭文件
2.直接创建word应用程序
Dim wordAPP As Object, myWord As Object
'获取应用程序所在目录,生成Word对象,并打开相对路径的文档模板
Set wordAPP = CreateObject("Word.Application")
Set myWord = wordAPP.Documents.Open(App.Path & "\printfile\patientInfo.doc")
'打开word文档,用于向word输出患者信息
Open App.Path & "\printfile\patientInfo.doc" For Output As #1
怎么样才能生成不出现这种提示的word文件?
天方夜谭
另外,我就是想知道怎么在vb中解决生成word文件后,打开时不出现上面的提示。
就和其他word文件一样正常打开。
谢谢。
还是不行,试验了一下那个网址的代码,还是不行。
关闭word时,弹出如下提示:
察看本文应用于的产品
文章编号 : 275955
最后修改 : 2006年3月31日
修订 : 3.1
症状
当您查看包含 Microsoft Word 模板的文件夹的内容时,将显示通用模板的自动保存副本 ~$Normal.dot,即使您启动了 Word 然后正常退出该程序也是如此。
回到顶端原因
如果您对 Normal.dot 模板进行了更改并且 Word 异常退出,可能会出现此现象。自动保存文件在文档所有者(创建该自动保存文件的程序)打开文件然后正常关闭后通常会被删除,但是通用模板自动保存文件不会被删除。
回到顶端解决方案
要解决此问题,请手动删除自动保存文件。要删除文件 ~$Normal.dot,请按照下列步骤操作: 1. 启动 Microsoft Windows 资源管理器。
2. 浏览以查找 ~$Normal.dot。它通常位于默认的 Word 模板文件夹中:磁盘:\Documents and Settings\计算机名称\Application Data\Microsoft\Templates
3. 右键单击 ~$Normal.dot。
4. 在快捷菜单上,单击删除。
5. 当确认消息出现时,请单击是。 回到顶端状态
Microsoft 已经确认这是在本文开头列出的 Microsoft 产品中存在的问题。
回到顶端
但是,打开word时提示“Micsoft office word 需要转换器以正确显示该文件”,还是没有解决?
请问该怎么办?
应该只用 Word.Application 操作。
搞不明白到底是怎么回事。
我在xp下重装过office2003,结果还是一样的问题。
我还是装office2007试试看,看那样还有没有这个问题。
1.使用CommonDialog方式保存的word文件换成office2007后,打开文件时提示变成了选择一个编码方式,默认设置在gb2312上。
那就是说我需要设置一个编码方式,
CommonDialog1.FontName = "宋体"
CommonDialog1.FontSize = 12
如上可以设置字体,但不起作用,字体大小也不起作用。这样生成的word文件打开时还是会提示选择编码方式。
请问需要怎么设置编码方式呢?2.用Set wordAPP = CreateObject("Word.Application")方式生成的word
此种方式生成的word文件打开时不会出现提示选择编码方式,但是在关闭时会出现如下提示:
就算关闭vb程序后,再打开word文件关闭时也会出现这个提示。
请问各位,以上两种方法该怎么解决?多谢了!
2.用Set wordAPP = CreateObject("Word.Application")方式生成的word
此种方式生成的word文件打开时不会出现提示选择编码方式,但是在关闭时会出现如下提示:
就算关闭vb程序后,再打开word文件关闭时也会出现这个提示。
请问各位,以上两种方法该怎么解决?多谢了!
CommonDialog只是由用户交互输入一个用来保存的文件名,具体保存还是由你的代码完成的。
不知道你怎么做的?
难道是按照doc的数据格式直接生成的?那么只能说生成的格式不完整。
1. 我试过一个add()的例子,在不设置visible = true,即不显示这个生成的word文件的时候,就完全正常。那就是我在生成这个文件后,在显示之前需要先结束此word应用程序,然后再打开,就不会出现关闭时此文件再使用的提示了。2.CommonDialog只是由用户交互输入一个用来保存的文件名,具体保存还是由你的代码完成的。
不知道你怎么做的?
难道是按照doc的数据格式直接生成的?那么只能说生成的格式不完整。
:应该是你说的这样才完整,我就是直接按照.doc保存的,没有设置其他的,所以才会在打开这个文件时提示选择编码。
你这么一说我就想起来在备份access数据库时也是使用的CommonDialog选择保存路径和文件名,但那时就对数据库文件进行了代码处理,先读文件,在保存文件,那样才对。
应该先保存文档,再关闭文档,最后关闭Word程序。
关闭文档用Close,最后关闭Word程序用Quit就可以了吧?
Word 也应该一样。
麻烦再问一下,我用CommonDialog另存为word文件,我的代码处理如下,哪么还需要做哪些设置才行,怎么设置编码为gb2312?
多谢了,我不一点都不知道该怎么做了。
Dim i As Integer
'µ¼³ö½á¹û
On Error GoTo errCode
CommonDialog1.CancelError = True
CommonDialog1.DialogTitle = "µ¼³öͳ¼Æ½á¹û"
CommonDialog1.FileName = Trim(comPatientId.Text) 'ĬÈÏÎļþÃû
CommonDialog1.FontName = "ËÎÌå"
CommonDialog1.FontSize = 22
CommonDialog1.Filter = "wordÎļþ(*.doc) (¿ÉÑ¡ÔñÆäËûÎļþ¸ñʽ£»»òÖ±½ÓÊäÈëÈÎÒâÎļþ¸ñʽºó׺)|*.doc|ExcelÎļþ(*.xls)|*.xls|Îı¾Îļþ(*.txt)|*.txt"
CommonDialog1.ShowSave Dim mfile As String
mfile = CommonDialog1.FileName 'µÃµ½Ä¿±êÎļþµÄ·¾¶
If Trim(mfile) = "" Then
Exit Sub
End If
If Dir(mfile) <> "" Then
If MsgBox(Dir(mfile) & " ÎļþÒѾ´æÔÚ£¬ÊÇ·ñÌæ»»£¿", vbYesNo + vbQuestion + vbDefaultButton2, "¾¯¸æ") = vbNo Then
Exit Sub
End If
End If
Open mfile For Output As #1 Print #1, "»¼ÕßÖÎÁÆ´ÎÊý"
Print #1, '»»ÐÐ
Print #1, "»¼Õß±àºÅ£º"; comPatientId.Text
Print #1, "ÐÕ Ãû£º"; comPatientName.Text
Print #1, "×Ü´ÎÊý£º"; txtTotal.Text
Print #1, "ÿÔÂÖÎÁÆ´ÎÊý£º"
For i = 0 To List1.ListCount - 1
Print #1, List1.List(i); 'ºóÃæ¼ÓÉϷֺŻò¶ººÅ£¬¾Í²»»á¶àÒ»¸ö¿ÕÐÐ
Next Close #1 '¹Ø±ÕÎļþ
MsgBox "µ¼³ö³É¹¦£¡", vbOKOnly + vbInformation, "Ìáʾ"
Exit Sub
errCode:
If Err.Number = cdlCancel Then 'Ñ¡ÔñÁË¡°È¡Ïû¡±
Exit Sub
End If
难道随便新建一个文本文件,然后后缀改成 .mp3 就能放音乐了?
莫名其妙的逻辑。
主要是我不知道该从哪里下手。
是不是我根据CommonDialog返回用户选择的文件类型,再对不同的类型(word, excel, txt)分别处理,生成对应类型的文件就可以了?