如何Word中用VBA打开Excel表格,读取其中的内容写入到Word
可用CreateObject函数创建对EXCEL的引用,然后就可打开EXCEL工作簿,将表格中的数据复制到WORD中,参考代码如下:Set xlapp = CreateObject("excel.application")With xlapp.Open("带路径的EXCEL文件名").Sheets(1).Range("A1:H8").Copy'粘贴到WORD指定位置End Withxlapp.Quit
怎么在excel 里用vba新建word文档并写入文字,表格,图片
Dim Worddocument As Word.ApplicationSet Worddocument = CreateObject("word.application")With Worddocument.Documents.Add '打开一份文档.Visible = True '汇话状态打开end with以上打开一个新的word文档
如何在excel vba 中读写word文档 步骤
Sub text()Dim wd As New Word.ApplicationSet wd = CreateObject("word.application")With wd.Visible = True.Documents.AddEnd WithActiveDocument.Range.text = "123456789"End Sub以上代码在excel模块当中写入,新建Word,并向其中写入字符"123456789"注意:需要在引用中勾选word 14.0 如图
在Excel中,通过VBA往word表格里写数据时,如何根据内容增加或者...
可以通过word的table对象对word表格进行操作。
下面的代码在Excel的Vba中运行,运行前先添加Microsoft Word XX.0 Object Library的引用,其中XX.0根据你安装的Office 版本不同而不同,一般来试Office Word 2003 是11.0,Office Word 2013 是15.0 。
Sub toWord()Dim wordApp As New Word.ApplicationwordApp.Visible = TrueDim wordDoc As Word.DocumentDim wordTable As Word.TableSet wordDoc = wordApp.Documents.Add '新建一个文档Set wordTable = wordDoc.Tables.Add(wordDoc.Range(), 1, 1, wdWord9TableBehavior, wdAutoFitWindow) '文档中插入一个表格Dim r As Long, c As LongFor r = 1 To ActiveSheet.UsedRange.Rows.CountIf r > wordTable.Rows.Count ThenwordTable.Rows.Add '表格插入行End IfFor c = 1 To ActiveSheet.UsedRange.Columns.CountIf c > wordTable.Columns.Count ThenwordTable.Columns.Add '表格插入列wordTable.Columns.AutoFitEnd IfwordTable.Cell(r, c).Range.Text = Cells(r, c) Next cNext rwordTable.AutoFitBehavior wdAutoFitWindowEnd 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 Excel 数据交互
我是使用OFFICE 2003来做的,不知道你那好使不好使Private Sub CommandButton2_Click()'防止重复打开同一Word文档导致错误If Not WordDocIsOpen("F:\总工月报表.doc") Then'创建Word对象Set objWordApp = CreateObject("Word.Application")objWordApp.Visible = True'打开指定文档Set objDocument = objWordApp.Documents.Open("F:\总工月报表.doc")'获取当前Excel的SHEET1的单元格C2数据strName = ThisWorkbook.Sheets(1).Cells(2, 3).Value'将取得得值设定到Word表格的1行2列中objDocument.Tables(1).Cell(1, 2).Range.Text = strNameEnd IfEnd Sub'判断Word文档是否被重复打开Function WordDocIsOpen(ByVal strDocName As String) As BooleanDim objWordApp As ObjectDim objWordDoc As ObjectWordDocIsOpen = FalseSet objWordApp = NothingOn Error Resume NextstrDocName = UCase(strDocName)'判断是否有Word程序被打开Set objWordApp = GetObject(, "Word.Application")If Not objWordApp Is Nothing Then'判断指定Word文件是否被打开For Each objWordDoc In objWordApp.DocumentsIf UCase(objWordDoc.FullName) = strDocName ThenWordDocIsOpen = TrueExit ForEnd IfNextEnd IfSet objWordDoc = NothingSet objWordApp = NothingEnd Function
如何用 VB 向word里 写公式!!!VB WORD 公式,求高手帮忙,多...
1、先引用microsoft word 11.0 object library2、代码,下面是一个例子,在新建word文档“test.doc”并写入“实验数据表”这5个字,字体为黑体,大小为21.5,居中显示。
公式编辑和这个类似。
Set wrdapp = New Word.ApplicationWith wrdappDocuments.Add DocumentType:=wdNewBlankDocument.ActiveDocument.SaveAs ("d:\test.doc").Documents.Open ("d:\test.doc")'写标题Selection.Font.Name = "黑体"Selection.Font.Size = 21.5Selection.TypeText Text:="实验数据表"Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter '居中.QuitEnd With---------------你可以参考下面看看http://topic.csdn.net/u/20081017/19/a0915409-3561-4379-949c-cda983b31f58.HTML
如何写VBA批量统计word和txt的字符数(不含空格)
我把我以前用excel做的类似的module改了下发给你你可能需要在工具引用那里添加 microsoft word 14.0 object library以及 microsoft scripting runtime。
你可以改下用word vba,然后txt那部分的处理用别的方法做就不用添加引用了Sub CountTxtWord()Dim fName As String, fPath As StringDim s As StringDim i As IntegerDim WrdApp As ObjectSet WrdApp = CreateObject("word.application")ActiveSheet.Cells.ClearfPath = "D:\test6\"fName = Dir(fPath)i = 2Do Until fName = ""If Right(fName, 4) = ".txt" ThenWith New Scripting.FileSystemObjectWith .OpenTextFile(fPath & fName)s = .ReadAlls = Replace(s, " ", "")Cells(i, 1) = fPath & fNameCells(i, 2) = Len(s)i = i + 1End WithEnd WithElseWrdApp.Documents.Open (fPath & fName)s = WrdApp.ActiveDocument.Range.TextWrdApp.ActiveDocument.Close Falses = Replace(s, " ", "")Cells(i, 1) = fPath & fNameCells(i, 2) = Len(s)i = i + 1End IffName = DirLoopColumns(1).AutoFitWrdApp.QuitEnd Sub
哪位大神写个VBA帮忙批量把word中内容读取到excel中
使用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
转载请注明出处51数据库 » vba word写入