首页 > 解决方案 > VBA 将 MS Word 段落复制到 Excel,错误 1004 PasteSpecial 范围类方法失败

问题描述

基于Copy Word Paragraph to Excel Cells中提出的问题,我正在尝试根据段落样式是否为标题 1、标题 2 将段落粘贴到 excel 工作簿第一张工作表的第 1、2、3、4 列中的文件中、标题 3 或标题 4。

我有以下代码:

Private Sub LS2()
    Dim ParaCount As Integer
    Dim wDoc As Word.Document
    Dim objExcel As Excel.Application
    Dim wb As Excel.Workbook
    Dim ws As Excel.Worksheet
    
    On Error Resume Next
    Set objExcel = GetObject(, "Excel.Application")
    On Error GoTo 0
    If objExcel Is Nothing Then
        Set objExcel = CreateObject("Excel.Application")
        objExcel.Visible = True
    End If

    On Error Resume Next
    Set wb = objExcel.Workbooks("new.xlsm")
    On Error GoTo 0
    If wb Is Nothing Then
        Set wb = objExcel.Workbooks.Open("C:\Users\aesnj\OneDrive\Desktop\FPR\new.xlsm")
    End If
    
    Set wDoc = ActiveDocument
    Set ws = wb.Sheets("Sheet1")

    For ParaCount = 1 To wDoc.Paragraphs.Count
        If wDoc.Paragraphs(ParaCount).Range.Style = wdStyleHeading1 Then
            wDoc.Paragraphs(ParaCount).Range.FormattedText.Copy
            ws.Cells(ParaCount, 1).PasteSpecial Paste:=xlPasteFormats
        ElseIf wDoc.Paragraphs(ParaCount).Range.Style = wdStyleHeading2 Then
            wDoc.Paragraphs(ParaCount).Range.FormattedText.Copy
            ws.Cells(ParaCount, 2).PasteSpecial Paste:=xlPasteFormats
        ElseIf wDoc.Paragraphs(ParaCount).Range.Style = wdStyleHeading3 Then
            wDoc.Paragraphs(ParaCount).Range.FormattedText.Copy
            ws.Cells(ParaCount, 3).PasteSpecial Paste:=xlPasteFormats
        ElseIf wDoc.Paragraphs(ParaCount).Range.Style = wdStyleHeading4 Then
            wDoc.Paragraphs(ParaCount).Range.FormattedText.Copy
            ws.Cells(ParaCount, 4).PasteSpecial Paste:=xlPasteFormats
        End If
    Next ParaCount
    ws.Columns(1).AutoFit

End Sub

但是,我首先遇到了错误: 'new.xlsm does not exist, could it be removed or renamed''错误,所以创建了一个空的'new,xlsm'文件。之后,它一直运行到 for 循环,然后说'Error 1004 VBA PasteSpecial Method of Range Class Failed'. 我尝试在文件顶部添加“选项显式”,但不走运。有谁知道问题是什么?

标签: excelvbaerror-handlingms-wordpaste

解决方案


推荐阅读