Vba 宏,用于在表格到word超出页边距时复制excel数据范围

Vba 宏,用于在表格到word超出页边距时复制excel数据范围,vba,excel,Vba,Excel,我想写宏将表格从excel复制到word。它应该保持格式,并且必须自动适应word。粘贴到word时,表格不应超出范围 Dim wdApp As Object Dim wd As Object On Error Resume Next Set wdApp = GetObject(, "Word.Application") If Err.Number <> 0 Then Set wdApp = CreateObject("Word.Application") End If O

我想写宏将表格从excel复制到word。它应该保持格式,并且必须自动适应word。粘贴到word时,表格不应超出范围

Dim wdApp As Object
Dim wd As Object

On Error Resume Next
Set wdApp = GetObject(, "Word.Application")
If Err.Number <> 0 Then
    Set wdApp = CreateObject("Word.Application")
End If
On Error GoTo 0

Set wd = wdApp.Documents.Add

wdApp.Visible = True

Sheets("Sheet1").Select
Range("A1:E36").Select
Selection.Copy

wdApp.Selection.PasteExcelTable False, False, False
Dim wdApp作为对象
作为对象的Dim wd
出错时继续下一步
Set wdApp=GetObject(,“Word.Application”)
如果错误号为0,则
Set wdApp=CreateObject(“Word.Application”)
如果结束
错误转到0
设置wd=wdApp.Documents.Add
wdApp.Visible=True
图纸(“图纸1”)。选择
范围(“A1:E36”)。选择
选择,复制
wdApp.Selection.PasteExcelTable False,False,False
以上代码为wors。它将excel范围内的数据作为表格复制到word。然而,表格超出了word文档的页边距。 Excel中的数据- 复制后Word中的数据-

添加到末尾

wd.Tables(1).AutoFitBehavior wdAutoFitWindow
试试这个:

wdApp.Selection.PasteExcelTable False, True, False   'causing losing excel formatting
追加:

'change fileformat and filename as per your need

wdApp.Selection.PasteExcelTable False, False, False
wd.SaveAs Filename:="demo.docm", FileFormat:=wdformatdocm
wd.Tables(1).AutoFitBehavior wdAutoFitContent 'you may try wdAutoFitWindow as well

在WDAutofit窗口周围放一个括号

试试看

wd.Tables(1).Range.ParagraphFormat.SpaceAfter = 0

它可以工作,但会丢失所有的格式、颜色等。请参阅附加的答案,它可能会满足您的需要。