Vba 宏,用于在表格到word超出页边距时复制excel数据范围
我想写宏将表格从excel复制到word。它应该保持格式,并且必须自动适应word。粘贴到word时,表格不应超出范围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
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
它可以工作,但会丢失所有的格式、颜色等。请参阅附加的答案,它可能会满足您的需要。