我录制了一段WORD的宏,包括把文件另存为RTF的一个操作,可是录制好以后发现另存的文件名是固定的,就是: ActiveDocument.SaveAs FileName:="文件.rtf",以后只要执行宏,不管我打开的文件是什么都存成“文件.rtf”这个怎么办能?
是否有一个函数可以返回当前打开的文件名啊。这样就可以做以下的操作吧
i = 函数(返回当前文档名)
ActiveDocument.SaveAs FileName:=i & ".rtf"
我试过一个叫Application.MacroContainer.FullName的,可是不行。
先谢谢了
是否有一个函数可以返回当前打开的文件名啊。这样就可以做以下的操作吧
i = 函数(返回当前文档名)
ActiveDocument.SaveAs FileName:=i & ".rtf"
我试过一个叫Application.MacroContainer.FullName的,可是不行。
先谢谢了
解决方案 »
- vb6中 如何判断 variant变量“不”为空,急。。。。。。。
- 通过API如何得到当前窗口下得到焦点文本框的句柄?
- 为什么CreatePen这个函数不好用,有问题?
- 初學﹐一個簡單問題﹐送分﹐在線等待﹐急﹗﹗
- 用Open "LPT1:" For Output As #1 进行打印,如何使LQ680k打印机退纸?
- 高分求一个公式的VB程序??
- 软件发布:CSDN 帖子检索查询工具!
- 向各位请教,textbox框里输入的文字可以换行输入吗?就是一个大的textbox框高度是好几行,可不可以到框的边缘自动换行?
- memo类型字段不能为空吗?
- 求助:在给自定义图片控件,增加OLEDragDrop 拖动功能怎么做?
- 如何把窗口设为不激活? 急!!40分
- 如何设置一个软件的限制使用次数(或使用时间)
但是有一个美中不足,生成的文件名会带有以前的扩展名。如“文件.DOCX.RTF”,有没有办法把.DOCX去掉?
另外这些东西在哪可以学到,我在网上逛了两个小时想自己研究出来怎么弄,最后失败了。
还有,我是不是点下面的“结贴”问题点数就能生效?
activedocument.Name 是不带扩展名的啊。
http://community.csdn.net/Help/HelpCenter.htm#结帖
带的,我用的是word2007,是否有关系?
我试了下如果我转一个DOCX到RTF,那么就是文件名.DOCX.RTF,试了下再转DOCX如果再转就变成了.DOCX.RTF.DOCX
这个属性返回的是‘活动文档’的名称。楼主之所以是‘成功的’,只是凑巧而已,他的操作状态下,‘活动文档’就是‘当前文档’。
严格说来,取‘当前文档名称’应该用的是:ThisDocument.Name
楼主要去掉文件名末尾的‘.doc’,可以试试这样:
ActiveDocument.SaveAs FileName:=Replace(ThisDocument.Name, ".doc", "", 1, , vbTextCompare) & ".rtf"这句代码对文件名中没有胡乱加入.doc的文件,执行结果是没问题的。如果文件名中包含.doc,用这段就万无一失了:
Dim strNewName$
strNewName = ThisDocument.Name
If (LCase$(Right$(strNewName, 4)) = ".doc") Then strNewName = Left$(strNewName, Len(strNewName) - 4)
ActiveDocument.SaveAs FileName:=strNewName & ".rtf"
那我的代码中的 ".doc" 就得全部换为 ".docx" 了。
还有,第二段代码中的两个 4 要换成 5 。