在Excel中,通过VBA往word表格里写数据时,如何根据内容增加或者减少word表格列数?

在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 。

Sub toWord()
    Dim wordApp As New Word.Application
    wordApp.Visible = True
    Dim wordDoc As Word.Document
    Dim wordTable As Word.Table
    
    Set wordDoc = wordApp.Documents.Add       '新建一个文档
    
    Set wordTable = wordDoc.Tables.Add(wordDoc.Range(), 1, 1, wdWord9TableBehavior, wdAutoFitWindow)   '文档中插入一个表格
    Dim r As Long, c As Long
    For r = 1 To ActiveSheet.UsedRange.Rows.Count
        If r > wordTable.Rows.Count Then
            wordTable.Rows.Add   '表格插入行
        End If
        For c = 1 To ActiveSheet.UsedRange.Columns.Count
            If c > wordTable.Columns.Count Then
                wordTable.Columns.Add   '表格插入列
                wordTable.Columns.AutoFit
            End If
            wordTable.Cell(r, c).Range.Text = Cells(r, c)   
        Next c
    Next r
    wordTable.AutoFitBehavior wdAutoFitWindow
End Sub

追问

你回答很详细,先谢谢你,能做成根据A1的数值来决定生成多少列吗?如:A1=2,就生成2列,很抱歉,因为我不太熟悉VBA,没有办法把你上面的源码进行修改,麻烦你修改一下,我再采纳为满意回答。

温馨提示:答案为网友推荐,仅供参考
相似回答