通过Excel VBA删除Word中的表格

Deleting a Table in Word via Excel VBA

提问人:INeedHelpWithVbaPlease 提问时间:7/18/2023 更新时间:7/18/2023 访问量:83

问:

我构建了一个程序,可以将单元格从 Excel 传输到 Word 文档中作为表格。但是每次我使用我的宏时,表格都会粘贴到较旧的表格上方(来自之前的宏用法)并保留在那里。是否有可能使用Excel-VBA代码删除或覆盖旧表 ?

我尝试使用Excel VBA查找并删除它 - >不起作用 尝试录制 --> 不起作用

Excel VBA 覆盖

评论

0赞 Community 7/20/2023
请提供足够的代码,以便其他人可以更好地理解或重现问题。

答:

0赞 Danjo9 7/18/2023 #1

听起来您正在添加一个表,而不是选择现有的表。假设您的 Word 文档中有一个表,它将是:

Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim xlBook As Workbook
Dim MySht As Worksheet

Set xlBook = ThisWorkbook
Set MySht = xlBook.Sheets("Sheet1")
SavePath = xlBook.Path
FileNm = "My Word Document.docx"

Set WordApp = CreateObject("Word.Application")
Set WordDoc = WordApp.Documents.Open(SavePath & FileNm)

WordDoc.Tables(1).Cell(1, 1).Select
WordApp.Selection.TypeText Text:=Sht.Cells(1, 1)

WordDoc.Tables(1).Cell(1, 2).Select
WordApp.Selection.TypeText Text:=Sht.Cells(1, 2)

'And so on...

评论

0赞 INeedHelpWithVbaPlease 7/19/2023
也许我的问题不是很准确,我的错误。所以我在excel中有一系列单元格,我将其复制并粘贴到word中作为表格。每次我使用宏时,创建的新表都会粘贴到旧表的上方。现在的问题是,是否有可能删除或覆盖每个 excel 宏 vba 的旧表,或者我是否必须每次手动删除它们。
0赞 Danjo9 7/20/2023
是的,出于这个原因,我不会使用复制和粘贴,我会使用 TypeText。因此,在我的代码中,我在 Word 表格中选择了第 1 行第 1 列,然后使用 TypeText 将工作表中的值放在单元格 A1 中。如果它们都位于电子表格和 Word Doc 表格中的等效位置,则可以使用 For Next 循环