wordvba打开对话框选择多个文档
- 作者: 小小妖姓王
- 来源: 51数据库
- 2020-04-21
如何在Word中打开VBA编程窗口
一、编制程序 1.启动Word,连续点击“工具”,“宏”,“录制新宏。”
,在弹出的对话框中填写宏名(此例为“作文稿纸”),选择宏要保存的位置(可以保存在模板中,也可以保存在当前文档中),如图1所示。 2.为了方便操作,可以将此宏以按钮的形式指定在工具栏中。
单击“录制宏”对话框中的“工具栏”按钮,在弹出的“自定义”对话框的右侧,选中宏命令“Normal.NewMacros.作文稿纸”,用鼠标将其拖动复制到“常用”工具栏,在其上单击右键,选择相应的命令修改名称,为其编辑一个小图标,结果如图2所示。 3.单击“录制宏”对话框中的“关闭”按钮,屏幕上将出现一个“录制宏”工具栏,单击停止按钮停止录制。
4.依次选择“工具”、“宏”、“宏…”,在对话框中选择宏名“作文稿纸”,单击“编辑”按钮,打开vba编程窗口。录入如下代码: Sub 作文稿纸()UserForm1.CommandButton1.Enabled = TrueUserForm1.ShowEnd Sub 5.插入一个窗体UserForm1,在其中插入4个标签,4个文本框,一个按钮。
分别设置它们的相关属性,其中,“所需行数”文本框的“text”属性值设为25,“所需列数”文本框的“text”属性值设为20,“行间距”文本框的“text”属性值设为0.5,“首尾空行高度”文本框的“text”属性值设为0.4,如图3所示。 6.双击命令按钮CommandButton1,录入以下代码: Private Sub CommandButton1_Click()Dim n As Integer '定义一个变量为整数型n = 1ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=Val(TextBox1.Text) * 2 + 1, NumColumns _:=Val(TextBox2.Text), DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixedSelection.EndKey Unit:=wdRow, Extend:=TrueSelection.Cells.Borders(wdBorderVertical).LineStyle = wdLineStyleNoneSelection.Tables(1).Rows.HeightRule = wdRowHeightExactly'设定表格行高为固定值Selection.Tables(1).Rows.Height = CentimetersToPoints(Val(TextBox3.Text))'设置表格行高为设置值,作为行间距Selection.Tables(1).Rows(1).Height = CentimetersToPoints(Val(TextBox4.Text))'设置第一行行高为设置值Do While n < val(textbox1.text)="" +="" 1selection.endkey="" unit:="wdLineSelection.MoveRight" unit:="wdCharacter," count:="2'将插入点移至下一行Selection.Tables(1).Rows(2" *="" n).height="Selection.Tables(1).Columns(1).PreferredWidth'设行高等于列宽Selection.EndKey" unit:="wdRow," extend:="TrueSelection.EndKey" unit:="wdLineSelection.MoveRight" unit:="wdCharacter," count:="2'将插入点移至下一行Selection.EndKey" unit:="wdRow," extend:="TrueSelection.Cells.Borders(wdBorderVertical).LineStyle" =="" wdlinestylenone'去除此行的内部框线,只余边框n="n" +="" 1loopselection.tables(1).rows(val(textbox1.text)="" *="" 2="" +="" 1).height="CentimetersToPoints(Val(TextBox4.Text))'设置末行高为设置值Selection.EndKey" unit:="wdRow," extend:="TrueSelection.Cells.Borders(wdBorderVertical).LineStyle" =="" wdlinestylenoneselection.tables(1).rows.alignment="wdAlignRowCenter'表格居中With" selection.tables(1).borders(wdborderleft).linewidth="wdLineWidth150pt.Borders(wdBorderRight).LineWidth" =="" wdlinewidth150pt.borders(wdbordertop).linewidth="wdLineWidth150pt.Borders(wdBorderBottom).LineWidth" =="" wdlinewidth150pt'设定表格边框为粗线end="" withselection.endkey="" unit:="wdLineUnload" me="" end="">
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 以下代码是实现将多个文档的内容复制到一个文档中,但是
随便创建个新的word,修改下inputbox那里的路径
黏贴代码就可以用了
Sub 数据复制()
Dim fName As String
Dim Doct As Document
Set Doct = ThisDocument
fName = InputBox("请输入要打开的文件名", "数据复制", "D:\test\333.docx")
Documents.Open Filename:=fName
Selection.WholeStory
Selection.Copy
Doct.Activate
Selection.PasteAndFormat (wdPasteDefault)
ActiveDocument.Save
Documents(fName).Close False
End Sub
如何在同一word窗口下打开两个不同的文档
1、打开word程序,点击页面左上角的“文件”。
2、在弹出的菜单栏目中,选择点击“选项”。
3、在弹出的word选项对话框中选择“高级”选项。
4、下拉页面,找到显示项,在“在任务栏中显示所有窗口”的打上勾,点击确定按钮。
5、打开2个文档,此时就可以用两个不同的窗口显示两个不同的文档了。
vba 循环打开多个word文件,提取数据依次存放到一个excel文件里,
参考下面的代码:Dim xlBook As Excel.WorkbookDim xlSheet As Excel.WorksheetApplication.ScreenUpdating = FalseIf MsgBox("需要操作的数据表是:EXCEL2003 格式,请选择:是!" & Chr(13) & "" & Chr(13) & "需要操作的数据表是:EXCEL2007 格式,请选择:否!", vbYesNo, "北极狐提示!!") = vbYes ThenS = "\*.xls"ss = 4ElseS = "\*.xlsx"ss = 5:End IfF = Dir(ThisWorkbook.Path & S)Do While F > " "If F <> ThisWorkbook.Name Then Set xlBook = Workbooks.Open(ThisWorkbook.Path & "\" & F) '打开已经存在的EXCEL工件簿文件For Each sh In xlBook.Worksheets '遍历工作表with sh'自己的代码end withWindows(ThisWorkbook.Name).Activate'回到打开的工作簿NextWindows(F).Close (true)'关闭打开的工作簿,并保存。
F = DirLoopApplication.ScreenUpdating = True。
VBA怎样实现 批量选择word文档读取其文件名并填表 的功能
Sub Test()
Dim f, n, x, wb, fName
On Error Resume Next
Cells.Clear
'打开文件(可多选)
f = Application.GetOpenFilename("Word文件,*.docm,", 1, "选择文件", MultiSelect:=True)
'遍历每个选择的文件
For x = 1 To UBound(f)
sFile = f(x)
'取文件名,并赋值给单元格
n = Len(sFile) - InStrRev(sFile, "\")
fName = Right(sFile, n)
Cells(x, 1) = Left(fName, InStr(fName, " ") - 1) '取1到空格前的字符
'Cells(x, 1) = Left(fname, 9) '取文件名的前9个字符
Cells(x, 2) = Mid(fName, InStr(fName, " ") + 1, Len(fName) - InStr(fName, ".") + 1) '取空格后到点之前的字符
'Cells(x, 2) = Mid(fName, 10, Len(fName) - InStr(fName, ".") + 1) '从10开始取到点之前的字符
Next x
End Sub
转载请注明出处51数据库 » wordvba打开对话框选择多个文档
