-1

我正在 PowerPoint 中创建一个宏来以编程方式替换图片。我正在尝试在 PowerPoint 宏末尾的 excel 中创建一个汇总表。首先我想检查summery文件是否存在。如果是,则代码应检查它是否已打开。如果它是打开的,代码应该关闭它。然后最后代码应该删除它。到目前为止,我已经成功地检查了文件并删除了文件。但是如果文件打开就关闭它似乎有点困难。任何帮助将不胜感激。先感谢您。

以下是我的代码的一部分。

'Get the active presentation name
pressName = ActivePresentation.Name
Pos = InStrRev(pressName, ".")
Pos = Pos - 1
pressName = Left(pressName, Pos)
excelFileName = pressName & "_Summery.xlsx"
'Create path from active presentation
excelFilePath = ActivePresentation.Path & "\" & excelFileName

'Check if excel exists
If Dir(excelFilePath) <> "" Then
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''Here code to check if file is open if yes then close''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
SetAttr excelFilePath, vbNormal
Kill excelFilePath
End If
4

1 回答 1

1

我在您的中结合了可能的解决方案if statement

If Dir(excelFilePath) <> "" Then
'--------------new section
    On Error Resume Next
    Dim xlsFile As Object
    Set xlsFile = GetObject(excelFileName)

    If Err.Number = 432 Then
        'file is not open, do nothing
    Else
        xlsFile .Close False
        'set true above is you need to save file when closing
    End If
    On Error GoTo 0
'--------------new section    
SetAttr excelFilePath, vbNormal
Kill excelFilePath
End If

此代码适用于我的简单测试演示。我希望它也对你有用。

于 2013-08-13T13:46:41.460 回答