我创建了一个vba脚本来复制多个pdf文件中的所有数据,并以相同的pdf文件名称粘贴到Excel中的不同选项卡中。

问题是它从pdf文件复制数据并粘贴在工作表的同一选项卡中,一个接一个地替换。请让我在哪里我错了。

最佳答案

您需要先重置wsOutp,然后再检查是否为空。
如所写,您正在设置wsOutp以便在初始循环中引用工作表。然后,您必须在下一个循环之前将其重置为空,因为当您尝试将其设置为引用另一个可能不存在的图纸时,如果失败,则引用仍指向原始图纸。所以最终发生的事情是,您在下一步中删除工作表。

因此,实际上您的代码不会覆盖同一张纸,而是要删除创建的每张纸,因此最后只剩下一张纸。

在下面添加行:

    ' Delete sheet with filename if exists
    Set wsOutp = Nothing
    On Error Resume Next
    Set wsOutp = Sheets(strFile)
    On Error GoTo 0
    If Not wsOutp Is Nothing Then
        wsOutp.Delete
    End If

07-26 04:58