word用vba选中某一段中某几个字符怎么写
提供一个方案给楼主参考,可以批量修改多个文档中某个指定文字的属性:1、启动Word后,键入Alt+F11打开VBA编辑窗口;2、选择菜单“插入->模块”,然后在代码编辑区中粘贴如下代码: Option Explicit Const g_strRootPath = "c:\Docs\" ' 指定存放所有文件的目录,可以有子目录 Const g_strTextToFind = "茶" ' 需要批量查找修改格式的文字内容 Dim g_oTargetFont As New Font' 主函数 Sub Main() Dim fso, oFolder' 设置需要修改的字体属性 g_oTargetFont.Size = 18 ' 字号 g_oTargetFont.Color = wdColorRed ' 颜色 g_oTargetFont.Bold = True ' 是否加粗(True加粗,False正常) g_oTargetFont.Italic = True ' 是否斜体(True斜体,False正常) g_oTargetFont.Underline = wdUnderlineDash ' 下划线风格'... 设置其他字体属性 Set fso = CreateObject("Scripting.FileSystemObject") Set oFolder = fso.GetFolder(g_strRootPath) ChangeFontStyleForFilesUnderFolder fso, oFolder MsgBox "完成!" End Sub' 修改指定文件夹(递归)下面的所有Word文件中指定文字的格式 Sub ChangeFontStyleForFilesUnderFolder(fso, oFolder) Dim oSubFolder, oFile For Each oSubFolder In oFolder.SubFolders ChangeFontStyleForFilesUnderFolder fso, oSubFolder Next For Each oFile In oFolder.Files Documents.Open oFile.Path ChangeFontStyleForActiveDocument ActiveDocument.Close True Next End Sub' 修改当前打开文档里面所有指定文字的格式 Sub ChangeFontStyleForActiveDocument() Selection.StartOf wdStory Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find.Text = g_strTextToFind.Replacement.Text = "^&".Replacement.Font = g_oTargetFont.Forward = True.Wrap = wdFindContinue.Format = True.MatchCase = False.MatchWholeWord = False.MatchByte = False.MatchAllWordForms = False.MatchSoundsLike = False.MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll End Sub3、修改代码开始处的两个参数:存放所有需要批量修改文档的根目录(下面可以包含子目录,比如“C:\Docs”),需要修改的文字(比如“茶”字,也可以是一个词或者句子);4、修改“主函数”里面想要设置的字体属性,如字号、颜色、加粗、斜体、下划线,等等;4、键入F5运行,直到看到“完成!”。
5、检查各个文档里面指定的文字是否已经被设置成了指定的格式。
VBA在WORD中的应用
vba用来编写宏程序,处理文本,比如能批量修改某些符号、文字,根据设定自动设定文本、文章格式,检查文本错误等等。
还可以用宏程序查找指定文本、修改特定代码,转化为一些特定的公式字符或代号。
总之,word里的功能都可以用vba实现,而且是自动运行,不是你想像的那样手工一个个去修改。
高手可以用来做很多扩展的功能,当然是word相关的。
比如加入自己喜欢使用的图形、处理各种图片、图表、剪贴图、艺术字等等。
word用vba选中某一段中某几个字符怎么写
展开全部 提供一个方案给楼主参考,可以批量修改多个文档中某个指定文字的属性:1、启动Word后,键入Alt+F11打开VBA编辑窗口;2、选择菜单“插入->模块”,然后在代码编辑区中粘贴如下代码: Option ExplicitConst g_strRootPath = "c:\Docs\" ' 指定存放所有文件的目录,可以有子目录 Const g_strTextToFind = "茶" ' 需要批量查找修改格式的文字内容Dim g_oTargetFont As New Font' 主函数 Sub Main()Dim fso, oFolder' 设置需要修改的字体属性g_oTargetFont.Size = 18 ' 字号g_oTargetFont.Color = wdColorRed ' 颜色g_oTargetFont.Bold = True ' 是否加粗(True加粗,False正常)g_oTargetFont.Italic = True ' 是否斜体(True斜体,False正常)g_oTargetFont.Underline = wdUnderlineDash ' 下划线风格'... 设置其他字体属性Set fso = CreateObject("Scripting.FileSystemObject")Set oFolder = fso.GetFolder(g_strRootPath)ChangeFontStyleForFilesUnderFolder fso, oFolderMsgBox "完成!"End Sub' 修改指定文件夹(递归)下面的所有Word文件中指定文字的格式 Sub ChangeFontStyleForFilesUnderFolder(fso, oFolder)Dim oSubFolder, oFileFor Each oSubFolder In oFolder.SubFoldersChangeFontStyleForFilesUnderFolder fso, oSubFolderNextFor Each oFile In oFolder.FilesDocuments.Open oFile.PathChangeFontStyleForActiveDocumentActiveDocument.Close TrueNextEnd Sub' 修改当前打开文档里面所有指定文字的格式 Sub ChangeFontStyleForActiveDocument()Selection.StartOf wdStorySelection.Find.ClearFormattingSelection.Find.Replacement.ClearFormattingWith Selection.Find.Text = g_strTextToFind.Replacement.Text = "^&".Replacement.Font = g_oTargetFont.Forward = True.Wrap = wdFindContinue.Format = True.MatchCase = False.MatchWholeWord = False.MatchByte = False.MatchAllWordForms = False.MatchSoundsLike = False.MatchWildcards = TrueEnd WithSelection.Find.Execute Replace:=wdReplaceAll End Sub3、修改代码开始处的两个参数:存放所有需要批量修改文档的根目录(下面可以包含子目录,比如“C:\Docs”),需要修改的文字(比如“茶”字,也可以是一个词或者句子);4、修改“主函数”里面想要设置的字体属性,如字号、颜色、加粗、斜体、下划线,等等;4、键入F5运行,直到看到“完成!”。
5、检查各个文档里面指定的文字是否已经被设置成了指定的格式。
如何利用word vba,提取指定字符串后面跟着的另外的字符串?
解决你的“顺便问下".....Sub Macro1()Dim strText As StringstrText = "建立反对撒客里空的龙卷风"Selection.TypeText strTextSelection.MoveStart Unit:=wdLine, Count:=-1Selection.MoveEnd Unit:=wdCharacter, Count:=-1 * (Len(Selection.Text) - 4)Selection.MoveStart Unit:=wdCharacter, Count:=3Selection.Font.Bold = TrueMsgBox Selection.TextEnd Sub
vba word如何提取当前段落某个字符前的字符
展开全部 可以用下面的代码来实现:Sub mytest()Selection.MoveDown unit:=wdParagraphSelection.MoveUp unit:=wdParagraph, Extend:=wdExtendutxt = Selection.Range.Textupos = InStr(utxt, "、")If upos > 0 Thenut = Left(utxt, upos - 1)MsgBox ut '这里就是要提取的内容ElseMsgBox "没有找到顿号!!!"End IfEnd Sub...
VBA Word中怎么用VBA选取表格中的表格
使用VBA操作Word表格一、生成表格Private Sub CreateTable(mRows As Integer, mColumns) Dim mRange As RangeSet mRange = ActiveDocument.RangemRange.SetRange Start:=ActiveDocument.Range.End, End:=ActiveDocument.Range.EndSet SelfGenTable = ActiveDocument.Tables.Add(Range:=mRange, NumRows:=mRows, NumColumns:=mColumns) End Sub上面过程的作用是在活动文档的末尾插入一个mRows行,mColumns列的表格。
二、在读写表格中的单元格 写入单元格使用如下代码:TableObject.Cell(Row:=curRow, Column:=curColumn).Range.InsertAfter "文本" 上面代码的做用时在curRow行,curColumn列处插入字符“文本”。
其中TableObject为表格对象,如果使用了生成表格中的例子,那么可以用SelfGenTable来替代TableObject。
三、调整单元格对齐方式 水平对齐设置Selection.ParagraphFormat.Alignment=水平对齐常数(具体的常数可以查看帮助文件的说明) 如何选择单元格? 选定特定单元格TableObject.Cell(Row:=1,Column:=1).Select'选定单元格1,1 选定行TableObject.Rows(i).Select'选定第i行 选定列TableObject.Columns(i).Select'选定第i列 选定整个表格 TableObject.Select首先执行表格元素选择程序,然后再使用Selection.ParagraphFormat.Alignment设置对齐方式。
垂直对齐方式Selection.Cells.VerticalAlignment=垂直对齐常数也是首先选择表格元素,可以使单个单元格,单个行、单个列或者整个表格。
似乎也可以同时选择多个单元格、多个行、多个列,有兴趣的朋友可以自行寻找答案。
四、设置表格边线类型下面的代码对整个表格的所有边线设置成细实线: SelfGenTable.Select With Selection.Borders(wdBorderBottom).LineStyle = wdLineStyleSingle .Borders(wdBorderLeft).LineStyle = wdLineStyleSingle .Borders(wdBorderRight).LineStyle = wdLineStyleSingle .Borders(wdBorderTop).LineStyle = wdLineStyleSingle.Borders(wdBorderHorizontal).LineStyle = wdLineStyleSingleBorders(wdBorderVertical).LineStyle = wdLineStyleSingle End With同样是对Selection进行设置,所以可以依照上面的方法对特定的单元格、行或者列的边线样式进行分别设置,这里就不再列举了。
五、调整表格尺寸下面的代码对一个六列的表格设置宽度,宽度采用百分比宽度,从左至右的宽度百分比依次为:30,10,10,30,10,10: Dim WidthP(0 To 2) As Integer Dim j As Integer dim i as Integer WidthP(0) = 30 WidthP(1) = 10 WidthP(2) = 10 j = 0For i = 0 To SelfGenTable.Columns.Count - 1 If j > 2 Then j = 0 End IfSelfGenTable.Columns(i + 1).PreferredWidthType = wdPreferredWidthPercent SelfGenTable.Columns(i + 1).PreferredWidth = WidthP(j) j = j + 1 Next上面的代码通过Columns的PreferredWidthType属性设置表格列宽的形式,这里选择的是百分比列宽,可以根据自己的实际情况选择其他列宽形式,然后再设置相应的数值。
表格的行高请读者以此类推(实际上我还没设置过行高,都用自动生成的就够了) ===============================================编写操作表格的程序时需要注意,Word表格的行列起始值为1,而不是0。
===============================================下面是一个拆分字符串的代码,当插入表格的文本过长时,可以设定一个长度,超过这个长度就进行回车,这样保证在设定的单元格宽度内能够写下长文本。
单元格的高度会自动调整以使文本能完整的显示,这也就是我为什么没有通过代码设置单元格高度的原因。
Private Function FoldText(mLen As Integer, mStr As String) As String '折叠文字函数,mLen为折叠前的文字长度,mStr为文字的内容 Dim i As IntegerDim tmpStr(0 To 1) As String '临时字符串 If Len(mStr) > mLen ThenDo While Len(mStr) > mLen tmpStr(0) = Left(mStr, mLen)mStr = Right(mStr, Len(mStr) - mLen)tmpStr(1) = tmpStr(1) + tmpStr(0) + vbCrLf LooptmpStr(1) = tmpStr(1) + mStr ElsetmpStr(1) = mStr
如何利用VBA在 word中,实现这样的功能:选中文字,然后按一个按...
ShowVisualBasicEditor = TrueActiveDocument.Shapes.AddTextEffect(msoTextEffect26, _"【解析】人们研制了许许多多计算机程序设计语言,其中二进制", "宋体", 36#, msoFalse, msoFalse, -190.95 _, 92.8).SelectShowVisualBasicEditor = True
用vba给word的 表格中的图片 加边框时 边框加到表格上
经测试编写VBA代码如下:Sub 嵌入式图片加边框()Application.ScreenUpdating = FalseDim a As IntegerDim pic As InlineShapeDim aBorder As Bordera = ActiveDocument.InlineShapes.CountIf a = 0 ThenMsgBox ("没有发现嵌入式图片")End IfFor Each pic In ActiveDocument.InlineShapespic.Borders.Enable = TrueWith picFor Each aBorder In pic.BordersWith aBorder.LineWidth = wdLineWidth025pt.Color = wdColorBlueEnd WithNext aBorder.ScaleHeight = 100.ScaleWidth = 100End WithNextApplication.ScreenUpdating = TrueEnd SubSub 取消边框()Dim a As Integera = ActiveDocument.InlineShapes.CountIf a = 0 ThenMsgBox ("没有发现嵌入式图片")End IfActiveDocument.InlineShapes(1).Borders.Enable = FalseEnd SubPrivate Sub CommandButton1_Click()嵌入式图片加边框End SubPrivate Sub CommandButton2_Click()取消边框End Sub效果如下:
转载请注明出处51数据库 » vba word中的字符串