首页 > 解决方案 > 在打开的 Excel 文件中编辑单元格

问题描述

我正在寻找通过 Word VBA 创建一个 excel 文档并编辑其中的一些单元格。我希望能够在包含其他 word 文档的目录中打开一个 word 文档并运行一个宏,该宏循环遍历所有文档并将 word 文档的名称放在“A”列中,并将文档的 flesch 可读性轻松得分放在'B' 列。我目前能够创建 excel 文档并将其保存到最后的目录中,但我无法编辑工作簿本身中的任何单元格。我目前拥有的代码如下。

Dim objExcel
Dim objDoc
Dim objSelection
Dim myCellA
Dim myCellB
Dim SaveAs1 As String
Dim i As Integer

SaveAs1 = ActiveDocument.Path & "\FleschData"

Set objExcel = CreateObject("Excel.Application")
Set objDoc = objExcel.Workbooks.Add

objExcel.Visible = True

Set objSelection = objExcel.Selection

Dim directoryName1 As String

directoryName1 = ActiveDocument.Path & "\"
vFile = Dir(directoryName1 & "*.*")

i = 1

Do While vFile <> ""

        Set oDoc = Documents.Open(FileName:=directoryName1 & vFile)

        Dim CopyName() As String
        CopyName = Split(ActiveDocument.Name, ".")

        Set myCellA = objSelection.Tables(1).Cell(Row:=i, Column:=1)
        myCellA.Value = CopyName(0)

        Set myCellB = objSelection.Tables(1).Cell(Row:=i, Column:=2)
        myCellB.Value = ActiveDocument.Content.ReadabilityStatistics(9).Value

        i = i + 1
        oDoc.Close SaveChanges:=False
        vFile = Dir
Loop

objExcel.ActiveWorkbook.SaveAs FileName:=SaveAs1, CreateBackup:=False
Application.DisplayAlerts = True

我目前遇到的问题是在 'Set myCellA = objSelection.Tables(1).Cell(Row:=i, Column:=1)' 行,错误是“对象不支持此属性或方法。 " 我尝试了几个不同的对象来调用 excel 函数,但似乎无法弄清楚。我对 VBA 比较陌生,所以任何见解都会有所帮助。

标签: excelvbams-word

解决方案


Excel 范围不像 Word 那样工作 - 方法完全不同。

未经测试:

Dim objExcel
Dim objWb
Dim objSelection
Dim myCellA
Dim myCellB
Dim SaveAs1 As String
Dim i As Integer

SaveAs1 = ActiveDocument.Path & "\FleschData"

Set objExcel = CreateObject("Excel.Application")
Set objWb = objExcel.Workbooks.Add
objExcel.Visible = True

Dim directoryName1 As String

directoryName1 = ActiveDocument.Path & "\"
vFile = Dir(directoryName1 & "*.*")

i = 0
Do While vFile <> ""
    i = i + 1
    Set oDoc = Documents.Open(Filename:=directoryName1 & vFile)
    With objWb.Sheets(1)
            .Cells(i, 1).Value = Split(oDoc.Name, ".")(0)
            .Cells(i, 2).Value = oDoc.Content.ReadabilityStatistics(9).Value
    End With
    oDoc.Close SaveChanges:=False
    vFile = Dir
Loop

objWb.SaveAs Filename:=SaveAs1, CreateBackup:=False
Application.DisplayAlerts = True

推荐阅读