❶ VBA將一個word表格中的內容復制到另外一個word的表格中
'打開後焦點發生了轉移,activedocument已經指向剛打開的文件了
'改為
Sub Macro1()
Dim myDoc
'On Error Resume Next
With ActiveDocument.Tables(1).Cell(Row:=1, Column:=3).Range
Set myDoc = Word.Application.Documents.Open("E:\1.docx")
.Delete
.InsertAfter Text:=myDoc.Tables(2).Cell(Row:=1, Column:=2)
End With
End Sub
'(
InsertAfter Text:=myDoc.Tables(2).Cell(Row:=1, Column:=2)這行代碼中,你確定表2存在嗎?我測試時只建一個表,所以改為Tables(1).
)
'也可以這樣控制焦點
Sub Macro1()
Dim myDoc
'On Error Resume Next
Set myDoc = Word.Application.Documents.Open("E:\1.docx", , , , , , , , , , , vbHide)
With ActiveDocument.Tables(1).Cell(Row:=1, Column:=3).Range
.Delete
.InsertAfter Text:=myDoc.Tables(2).Cell(Row:=1, Column:=2)
End With
End Sub
'至於為什麼多出一個換行符我還沒想明白
❷ 在Excel中,通過VBA往word表格里寫數據時,如何根據內容增加或者減少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 。
SubtoWord()
DimwordAppAsNewWord.Application
wordApp.Visible=True
DimwordDocAsWord.Document
DimwordTableAsWord.Table
SetwordDoc=wordApp.Documents.Add'新建一個文檔
SetwordTable=wordDoc.Tables.Add(wordDoc.Range(),1,1,wdWord9TableBehavior,wdAutoFitWindow)'文檔中插入一個表格
DimrAsLong,cAsLong
Forr=1ToActiveSheet.UsedRange.Rows.Count
Ifr>wordTable.Rows.CountThen
wordTable.Rows.Add'表格插入行
EndIf
Forc=1ToActiveSheet.UsedRange.Columns.Count
Ifc>wordTable.Columns.CountThen
wordTable.Columns.Add'表格插入列
wordTable.Columns.AutoFit
EndIf
wordTable.Cell(r,c).Range.Text=Cells(r,c)
Nextc
Nextr
wordTable.
EndSub
❸ 怎樣在Word中用VBA操作表格
1、在新工作表的Sheet1上點擊右鍵