VBA修改word文档
开启模糊查询即可,再判断一下查找的长度Sub 分章()Set myrange = ActiveDocument.ContentFor n = 1 To 8myrange.Find.Execute findtext:="第*章", Forward:=True, MatchWildcards:=TrueIf myrange.End - myrange.Start < 20 Thenmyrange.Style = ActiveDocument.Styles("标题 2")End IfNextEnd Sub测试运行了下,效果有点不好,修改一下Sub 分章()Set myrange = ActiveDocument.ContentFor n = 1 To 8myrange.Find.Execute findtext:="第*章", Forward:=True, MatchWildcards:=TrueIf myrange.End - myrange.Start < 20 Thenmyrange.Style = ActiveDocument.Styles("标题 2")Elsemyrange.Start = myrange.Start + 1End IfNextEnd Sub
用vba打开word模板并修改后保存
1、打开Word文件的 VBA编辑器,快捷键 Alt+F11,右击【ThisDocument】-》 【插入模块】;用VBA代码设置Word自动保存的步骤2、双击刚才插入的【模块1】,添加如下代码:Sub 自动备份()Dim NewTimeNewTime = Now + TimeValue(“00:05:10”)Dim myPath$, myName$myPath = ActiveDocument.PathmyName = Left$(ActiveDocument.Name, Len(ActiveDocument.Name) - 4)ChangeFileOpenDirectory myPathActiveDocument.SaveAs FileName:=myName & “_temp.doc”, ReadOnlyRecommended:=TrueActiveDocument.SaveAs FileName:=myName & “.doc”, ReadOnlyRecommended:=FalseApplication.OnTime NewTime, “自动备份”CreateObject(“Wscript.shell”).popup “备份成功,备份文件名为:” & myName & “_temp.doc”, 2, “提示!2秒后自动关闭!”End Sub用VBA代码设置Word自动保存的步骤用VBA代码设置Word自动保存的步骤3、双击【ThisDocument】并在其中 添加如下代码:Private Sub Document_Open()Call 自动备份End Sub用VBA代码设置Word自动保存的步骤4、默认自动备份时间为5min,如要调整请修改【模块1】中一句代码:如图中红框所示:时间格式为:HH : mm : ss用VBA代码设置Word自动保存的步骤5、保存代码及文件,且关闭word并重新打开,重新打开点击【选项】-》 【启用此内容】,如图:用VBA代码设置Word自动保存的步骤6、默认备份文件名为:【原文件名_temp,Lee.doc】且为只读,提示对话框2s后自动关闭。
备份效果显示如下:
如何用VBA实现WORD批量替换?
操作步骤。
第一,首先将需要批量替换的多个Word文档放在同一文件夹下面。
第二,新建一空白Word文档,右击空白工具栏,单击“控件工具箱”,就可以看到屏幕上调出的控件工具箱。
第三,在控件工具箱上单击“命令按钮”,文档中就放置了一个按钮了。
第四,双击该按钮,进入VB代码编写模式,将以下代码复制进去。
Private Sub CommandButton1_Click()Application.ScreenUpdating = FalseDim myPas As String, myPath As String, i As Integer, myDoc As DocumentWith Application.FileDialog(msoFileDialogFolderPicker).Title = "选择目标文件夹"If .Show = -1 ThenmyPath = .SelectedItems(1)ElseExit SubEnd IfEnd WithmyPas = InputBox("请输入打开密码:")With Application.FileSearch.LookIn = myPath.FileType = msoFileTypeWordDocumentsIf .Execute > 0 ThenFor i = 1 To .FoundFiles.CountSet myDoc = Documents.Open(FileName:=.FoundFiles(i), Passworddocument:=myPas)Selection.Find.ClearFormattingSelection.Find.Replacement.ClearFormattingWith Selection.Find.Text = "大家好".Replacement.Text = "你好".Forward = True.Wrap = wdFindAsk.Format = False.MatchCase = False.MatchWholeWord = False.MatchByte = True.MatchWildcards = False.MatchSoundsLike = False.MatchAllWordForms = FalseEnd WithSelection.Find.Execute Replace:=wdReplaceAllmyDoc.SavemyDoc.CloseSet myDoc = NothingNextEnd IfEnd WithApplication.ScreenUpdating = TrueEnd Sub第五,保存上面代码,退出VB编辑模式,返回Word文档界面。
第六,单击选中该按钮,再单击控件工具箱的第一个按钮“退出设计模式”。
第七,进行测试:点击按钮,选择要放置多个WORD文档所在的文件夹,确定后即可完成!注意如果WORD文档没有加密的话,密码项就不填,直接确认。
就会发现该文件夹下面的所有WORD文档中“大家好”已被替换为“你好”了。
关于Word VBA查找替换(含通配符)的问题
<; 标识单词开始,也就是说这里要匹配一个整词,前面要么是空格,要么是标点符号等。
(Subject) 匹配“Subject”这个单词。
用圆括号括起来的是让它成组,同时本来也可以在替换内容中通过“\1”来指代它。
但是我看粘贴出来的代码里面替换内容为空,所以我觉得这个圆括号可有可无。
\\ 匹配“\”这个字符。
因为“\”本身在查找控制字符里面具有特殊的控制意义(转义),所以要匹配它自己就必须在前面再加一个“\”进行转义。
* 匹配0到任意多个任意字符([^11^13]){1} 匹配一个换段符(^13,在文档里面是直接键入ENTER得到)或者一个段内换行符(^11,在文档里面键入SHIFT+ENTER得到)。
方括号的意思是匹配方括号里面这个集合中的任意字符。
“{n}”表示匹配n次,所以“{1}”就是匹配1次了。
至于那个圆括号,和上面提到的圆括号的功能相同,同样我觉得这里使用是多余的。
整句话的意思,就是要找到形如“Subject\ajdslfjasdlf”文字,且它后面必须是一个换段或者段内换行。
__________________补充:楼主说的没错,^11^13在这里是可以理解成或者的关系。
请问楼主提到的需求中,title后面是不是一定会有一个回车?如果是这样的话,可以直接在Word查找替换对话框中用这个查找串: <Subject*\\<([!\\]@)[^11^13] ,替换为:\1 。
选中通配符后做全部替换即可。
应该是不需要VBA的吧?楼主可以先试试看,如果不行我再想办法。
___________________再补充:([!\\]@) 的意思就是匹配一个不包含“\”(这个由“[!\\]”来控制)的字符串,这个字符串由至少一个字符组成(这个由“@”来控制)。
所以,我的整个查找串的意思就是,查找一个“Subject”开头,后面有若干字符,最后一个反斜杆的后面有一个字符串,再往后就是一个回车。
当然,如果不想用通配符,当然自己写代码也是能做到了。
但是就得自己去分析整个字符串,会需要考虑很多因素和可能的变化,代码会写得很复杂。
此外,Word查找替换的通配符,是Word中很重要的一个功能,掌握它能够为平时的工作带来的很大便利。
所以还是值得去研究一下的。
其实我就是看Word自带的帮助啊……在Word里面键入F1,然后输入关键字“查找替换”,好象返回的第一条就是我看的那个帮助,里面有这些控制符号的解释。
不过Word的查找替换对于模糊查询的支持总的来说还是比较弱。
要想做到更精确、更复杂的搜索条件,还是需要用到正则表达式。
这个可以在网上搜索一下“VBA 正则表达式”。
如何用VBA修改word的节开始的分节符
录制一个宏就知道了。
1、插入分节符(下一页)Selection.InsertBreakType:=wdSectionBreakNextPage2、后面插入指定图片。
路径是中间那句jpg格式的,要更改成自己的。
Selection.InlineShapes.AddPictureFileName:=_"C:\DocumentsandSettings\AllUsers.WINDOWS\Documents\MyPictures\示例图片\Bluehills.jpg"_,LinkToFile:=False,SaveWithDocument:=TrueWORD的VBA主要是Selection事件,即光标移动到某一位置(当前),然事执行某项操作,一般用录制宏可解决。
怎么用VBA修改word的节开始的分节符
VBA概述:VBA是Visual Basic For Application的缩写,是VB在office中的运用。
是基于Visual Basic For Windows发展而来的,VB For Windows是Microsoft于1992年推出的开发Windows应用程序的程序设计语言,由于基语法简单,易学易用,所以深受用户的欢迎。
而VBA和VB For Windows大体相似。
在Office2000之前,VBA在Word,Excel,Access等Office系统软件中的运用有些有同,但是到Office2000就统一起来了。
Excel是第一个包含有VBA的应用程序,自Office2000以后,Eexel,Word,PowerPoint,Access中已经有了统一标准的宏语言VBA,其中Excel和Access的VBA最为成熟。
在Excel中VBA程序即可以存放有.xls中,也可以单独以文本形式存放。
对VBA的学习,用户首先必须VB有一定的了解(不过不必很专业,毕竟经常用Excel的用户一般是办公人员,不可能是专业编程人员),然后结合宏记录器学习。
因为,宏记录器可以记录宏,用户可以非常清楚了然VBA的很多知识。
另外,如果不是功能很强大的VBA程序,那么用宏记录器就足够了。
打开密码记录器的方法,通过“工具->宏->录制新宏”。
另外,用户可能用“工具->宏->宏...”来管理宏。
用“工具->宏->VB 编辑器”或Alt+F11可以打开VB编辑器,在VB编程器,可以很方便地整个VB工程进行管理,可以方便地编写VBA代码,另外,用户可以再点击Alt+F11切换到Excel窗口。
VBA的使用过程: 1、创建一个Excel文件。
2、创建一个控件,然后双击控件或是右击该控件,点击“查看代码”,就可以对该控件的某个事件,如click,keydown等。
进行编写执行代码了。
创建控件的方法是,点击“视图->工具栏->控件工具箱”,打开“控件工具箱”栏,然后就可以直接拖动某个控件到Excel单元格中去。
在Excel中窗口,添加的控件一般是处于执行状态的,如果要对这个控件进行编辑,除了第一次建立的时候可以对它进行属性编辑外,打开“控件工具箱”,也可以使控件处于编辑状态,如果还不行,可以再添加一个控件,然后已有的控件绝对会处于编辑状态。
当然,对控件修改完毕后,别忘了删除刚才新添加的没有用的控件。
在编辑状态中,你可以右击该控件,点击“属性”,那么就可以打开属性窗口,在这个窗口里,你可以很方便的对这个控件的名字,标题,大小等属性进行编辑。
3、手动或用宏记录器对该控件的某个事件进行编码。
宏记录器简单易用,不过强大的功能还是必须手动编写VBA。
VBA对象介绍: 编写VBA代码的最关键在于灵活运用VBA对象,对这些VBA对象的属性或方法进行操作。
另外,你也可以创建自定义函数,来对某些操作进行封装。
既然是VBA,编码风格当然和VB相同,如果会VB,那么只要对VBA的对象比较了解,就可以编写功能强大的VBA程序;同样,如果不会VB,那么,只需要了解VBA的对象就够了,因为它比较简单易学。
以下分别讨论VBA各对象对其属性与方法: 在一些可以包含其他对象的窗口对象中,有几个特殊的属性,其属性值是当前活动对象,对它们,可以直接引用。
表1 一些特殊的属性 对象名 含义 ActiveWorkbook 当前工作簿,即如果你打开了几个Excel文件,那么你当然正在编辑的Excel文件即ActiveWorkbook ActiveSheet 当前工作簿中的当前工作表,即当前编辑的Excel文件中正在编辑的工作表 ActiveCell 当前工作表中活动单元格 ActiveChart 当前工作簿中的活动图表 Selection 当前被选定的对象 下面详谈各对象及它们的属性和方法 一、Application对象 此对象指Excel应用程序的工作环境。
属性 1.Caption属性 含义:Excel应用程序标题栏显示的文本。
举例:Application.caption=“船员管理系统”,如赋值Empty,则恢复Excel默认的标题栏。
2.Cursor属性 含义:Excel中鼠标的形状。
表2 Cursor属性 属性值 鼠标形状 xlDefault 缺少型值,鼠标呈缺少形状 xlWait 等待型值,鼠标呈不断翻转的沙漏形状 xlNorthwestArrow 箭头型值,鼠标呈标准箭头形状 xlIBeam 文本型值,鼠标呈“I”字形以等待用户输入文本 操作:Application.Cursor=xlWait等。
3、DisplayAlerts属性 含义:用以确定是否显示系统的应用提示和警告信息,如果不想显示,则把些属性设为false,反之亦然。
4、DisplayFormulaBar属性 含义:用以确定是否显示公式编辑栏 5、DisplayScrollBars属性 含义:用以确定是否显示Excel的滚动条 6、DisplayStatusBar属性 含义:用以确定是否显示Excel的状态栏 7、EnableCancelkey属性 含义:用以确定是否允许用户中断正在执行着的VBA程序。
缺省情况下,在VBA程序执行过程中,用户按下Ctrl+Break能够中断VBA程序的执行。
此时此属性即值为xlInterrupt。
若要禁止中断VBA程序,由赋值为xlDisabled;若需要VBA执行过程中遇到错误进中止,由赋值为xlErrorHandler 8、ScreenUpdating属性 含义:用以确定是否显示VBA程序的中间运算结果。
9、StatusBar属性 含义:设置状态栏的文本 10、ActiveWorkbook属性 含义:如表1介绍。
11、ActiveSheet 含义:如表1介绍。
12、ActiveCell属性 含义:如表1介绍。
13、ThisWorkBook属性 含义:用以返回正在执行着VBA程序所...
如何用vba修改word页眉中的文本框内容
其实通过宏录制你就完全可以明白,有些问题是可以自己轻易解决的,宏录制是学习vba很重要的一个步骤,自己要多尝试 :如下If ActiveWindow.View.SplitSpecial <> wdPaneNone ThenActiveWindow.Panes(2).CloseEnd IfIf ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _ActivePane.View.Type = wdOutlineView ThenActiveWindow.ActivePane.View.Type = wdPrintViewEnd IfActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeaderActiveDocument.AttachedTemplate.BuildingBlockEntries(" 空白").Insert Where:= _Selection.Range, RichText:=TrueSelection.TypeText Text:="暗暗暗暗"
如何用vba修改word页眉中的文本框内容
展开全部 其实通过宏录制你就完全可以明白,有些问题是可以自己轻易解决的,宏录制是学习vba很重要的一个步骤,自己要多尝试 :如下If ActiveWindow.View.SplitSpecial wdPaneNone ThenActiveWindow.Panes(2).CloseEnd IfIf ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _ActivePane.View.Type = wdOutlineView ThenActiveWindow.ActivePane.View.Type = wdPrintViewEnd IfActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeaderActiveDocument.AttachedTemplate.BuildingBlockEntries(" 空白").Insert Where:= _Selection.Range, RichText:=TrueSelection.TypeText Text:="暗暗暗暗"...
如何通过vba宏代码,实现一键更改所有word表格的版式为嵌入式
如果不启用宏,自动关闭工作簿是无法办到的。
因为不启用宏,任何代码都不会运行,怎么会自动关闭工作簿呢。
通常的做法是,在关闭工作簿事件中将所有有用的工作表深度隐藏,显示一个没有的工作表,可在其中写明必须启用宏之类的提示信息。
在工作簿打开事件中,将有用工作表显示,无用工作表隐藏。
这样当不启用宏打开工作簿将没有任何有用内容,只能看见一个无用工作表中的提示信息。
打开时启用宏才能看到和使用正常的工作表。
说明:深度隐藏的工作表是无法人工显示出来的,只能由代码显示出来。
转载请注明出处51数据库 » vba返回word修改人