我一直在使用这个网站一段时间,并且通常会研究我的所有问题,但是这个问题让我感到难过了几天 .
我有一个Excel工作簿,其中包含允许用户输入特定数据的工作表,一旦使用宏,将创建专门为每个宏格式化的Word文档 .
我正在尝试从excel复制范围,但并非所有行都将完成 . 范围目前是25行,但大多数用户只使用8-12:
Set tbl = ThisWorkbook.Worksheets(Sheet4.Name).Range("A8:D33")
我可以复制此范围并将其作为表粘贴到Word中,但我也得到空行 . 在Excel中,我只是简单.PasteSpecial Paste:= xlPasteValues但这与Word格式不兼容 .
下面是我将该范围复制到我的Word文档中的当前代码:
With Doc.Paragraphs(21).Range
tbl.Copy
Doc.Paragraphs(21).Range.PasteExcelTable LinkedToExcel:=False, _
WordFormatting:=False, _
RTF:=False
'.PageSetup.LeftMargin = "40"
'.PageSetup.RightMargin = "40"
Set wtbl = Doc.Tables(1)
wtbl.AutoFitBehavior (wdAutoFitContent)
wtbl.Borders.Enable = True
With wtbl.Rows(1)
.Height = 10
.Cells.VerticalAlignment = wdAlignVerticalBottom
End With
'wtbl.Rows.Cells.VerticalAlignment = wdCellAlignVerticalBottom
'wtbl.Rows.Height = 15
'Doc.Paragraphs(23).AutoFitBehavior (wdAutoFitWindow)
End With
2 回答
您可以在这样的列中找到最后使用的单元格 . 假设所有列都包含数据并且数据条目来自第8行向下移动,这应该可以解决问题:
我认为
CurrentRegion
是你的朋友:如果您获得了不需要的任何额外列,则可以始终使用“调整大小”属性 .