Board logo

标题: [其他] 批处理如何批量解除/取消word域功能? [打印本页]

作者: yy2372575    时间: 2015-9-21 11:11     标题: 批处理如何批量解除/取消word域功能?

本帖最后由 pcl_test 于 2016-4-15 19:29 编辑

现在有三个文件夹,每个文件夹里有大量word文档,而每个word文档都含有域功能,我想把三个文件夹内的全部word的域功能取消,请问怎么办呀?
我知道如何取消单个word域功能。如下:
解除域的链接  
首先选择有关域内容,然后按下“CTRL+SHIFT+F9”组合键即可解除域的链接,此时当前的域结果就会变为常规文本(即失去域的所有功能),以后它当然再也不能进行更新了。用户若需要重新更新信息,必须在文档中插入同样的域才能达到目的
可是word文档太多了,我不能一个一个取消,怎么批量取消呀
作者: pcl_test    时间: 2015-11-9 11:03

勿重复发帖
作者: upfour    时间: 2015-11-11 09:51

估计bat不行,用VBA吧
作者: yy2372575    时间: 2015-11-11 10:51

本帖最后由 pcl_test 于 2015-11-12 09:15 编辑

回复 3# upfour

谢谢大神,能帮忙编辑出来,并教我怎么用吗。万分感谢
作者: youxi01    时间: 2015-11-11 12:08

参考代码:

Sub test()
Dim tField As Word.Field
For Each tField In ActiveDocument.Fields
    tField.Unlink
Next
End Sub
作者: yy2372575    时间: 2015-11-12 09:04

谢谢大神。我试试
作者: yy2372575    时间: 2015-11-12 09:09

回复 5# youxi01

出现这个问题
作者: yy2372575    时间: 2015-11-12 09:56

大神,我传了一个样本。你看看http://pan.baidu.com/s/1kT3xCgv密码:99mx
作者: yy2372575    时间: 2015-11-17 10:47

自己给自己顶一下,希望大神看见再多多帮忙,谢谢
作者: CrLf    时间: 2015-11-17 16:54

卧槽,5楼那位不是盘古大神吗?
作者: yy2372575    时间: 2015-11-19 14:51

是吧!我也觉得他好厉害,我这贴好久了没人回,还是他回的。可惜昙花一现,我权限还没办法联系上他。
作者: 依山居    时间: 2015-11-19 15:07

回复 11# yy2372575


    自己找VBA的资料慢慢看去。
作者: yy2372575    时间: 2015-12-1 13:26

大哥,小白一枚,现在学vba,能给个推荐学习资料吗?另外实在紧迫,等我学完了,黄花菜都凉了,你要有能力请帮忙
作者: aa77dd@163.com    时间: 2015-12-1 14:03

C:\>reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\excel.exe" /v path

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\excel.exe
    path    REG_SZ    D:\Program Files (x86)\Microsoft Office\OFFICE11\


C:\>DIR /B "D:\Program Files (x86)\Microsoft Office\OFFICE11\2052\VBA*.CHM"
VBAAC10.CHM
VBAGR10.CHM
VBAOF11.CHM
VBAOL11.CHM
VBAOWS10.CHM
VBAPB10.CHM
VBAPP10.CHM
VBAWD10.CHM
VBAXL10.CHM
作者: WHY    时间: 2015-12-1 14:32

  1. strPath = "C:\Users\Administrator\Desktop"
  2. Set fso = CreateObject("Scripting.FileSystemObject")
  3. Set objWord = CreateObject("Word.Application")
  4. objWord.Visible = True
  5. For Each objFile In fso.GetFolder(strPath).Files
  6.     If LCase(Right(objFile.Path, 4)) = ".doc" Or LCase(Right(objFile.Path, 5)) = ".docx" Then
  7.         Set objDoc = objWord.Documents.Open(objFile.Path)
  8.         objDoc.Fields.Unlink
  9.         objDoc.SaveAs objFile.Path
  10.         objDoc.Close
  11.     End If
  12. Next
  13. objWord.Quit
复制代码

作者: yy2372575    时间: 2015-12-4 08:30

谢谢,我试试
作者: yy2372575    时间: 2015-12-4 08:33

这总情况是我使用不当吗
作者: yy2372575    时间: 2015-12-4 08:34

报错
作者: yy2372575    时间: 2015-12-4 08:34

谢谢,帮忙看看




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2