复制单元格范围、粘贴到Word中并格式化-Excel VBA

复制单元格范围、粘贴到Word中并格式化-Excel VBA,excel,vba,Excel,Vba,我想从Excel中复制一系列单元格,将其粘贴到Word中,并使用“自动调整到列”对其进行格式化。我该怎么做?这可以通过ListObject完成,但是 我不想将其格式化为Excel中的表格。您不能将范围引用指定给列表对象对象-它们不是一回事 用$a$1:$C$2中的这些值制作一张新表: A B C 1 2 3 点击“宏录制器”,从功能区中选择“格式为表格”;停止宏记录器。生成以下代码: Sub Macro1() ActiveSheet.ListObjects.Ad

我想从Excel中复制一系列单元格,将其粘贴到Word中,并使用“自动调整到列”对其进行格式化。我该怎么做?这可以通过ListObject完成,但是
我不想将其格式化为Excel中的表格。

您不能将
范围
引用指定给
列表对象
对象-它们不是一回事

$a$1:$C$2
中的这些值制作一张新表:

A    B    C
1    2    3
点击“宏录制器”,从功能区中选择“格式为表格”;停止宏记录器。生成以下代码:

Sub Macro1()
    ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$C$2"), , xlYes).Name = _
        "Table1"
    Range("Table1[#All]").Select
    ActiveSheet.ListObjects("Table1").TableStyle = "TableStyleLight1"
End Sub
您需要通过访问工作表的
ListObjects
集合并指定源范围来添加
ListObject

(我想将此作为注释发布到@mats-mug,但我还不能)作为@mats-mug答案的补充和一般良好做法,考虑不要在代码中使用<代码> ActhEsHeTe<代码>。将工作表声明为工作表对象

Dim wbSLA as Workbook
Dim wsDetailSLA as Worksheet
    Set wbSLA = ThisWorkbook
    Set wsDetailSLA = wbSLA.Sheets("SLA Details")

'use @mats-mug code here using the worksheet objects instead of ActiveSheet

但我不想将其格式化为表。我只想复制单元格区域,将其粘贴到Word文档中,并对其进行格式化。您需要一个
ListObject
-这正是“表格”的含义…抱歉,我不想将其格式化为表格。哇,您只是对您的问题进行了修改,使其过于宽泛,无法回答。祝你好运