0

我开发了以下代码来将当前目录中的所有发布者文件保存为图像,但是它似乎需要很长时间才能运行。另外,我想不出一种方法来排除正在运行宏的当前文件。有人有什么想法吗?

 Sub Looptest()

      Dim MyFile As String, Sep As String
      Dim objPub As Object
      Set objPub = CreateObject("Publisher.Application")
      Dim folder As String
      folder = CurDir()
    If Len(Dir(folder & "\" & "jpg", vbDirectory)) = 0 Then
        MkDir (folder & "\" & "jpg")
    End If


       Sep = Application.PathSeparator

      If Sep = "\" Then
         ' Windows platform search syntax.
         MyFile = Dir(CurDir() & Sep & "*.pub")

      Else

          MyFile = Dir("", MacID("XLS5"))
      End If

      ' Starts the loop, which will continue until there are no more files
      ' found.


      Do While MyFile <> ""
    'If MyFile = "macro.pub" Then
    'GoTo ContinueLoop
    'End If

    Dim pubApp As Publisher.Application
    Dim pubDoc As Publisher.Document
    Dim folder2 As String
    folder2 = CurDir() & Sep & MyFile


    Set pubApp = New Publisher.Application

    pubApp.Open folder2
    'pubApp.ActiveWindow.Visible = True
    num = folder2
    pubApp.ActiveDocument.Pages(1).SaveAsPicture CurDir() & Sep & "jpg" & "\" & MyFile & ".jpg"
    pubApp.Quit
             MyFile = Dir()
    'ContinueLoop:
          Loop

       End Sub

我已经注释掉了我跳过文件(在本例中称为 Macro.pub)的尝试,因为它似乎停止了并且没有去任何地方。

任何帮助将不胜感激!

-Cr1kk0

4

1 回答 1

1

假设您的代码在所有其他方面都是正确的,这可能会奏效

If MyFile = ActiveDocument.FullName Then
    GoTo ContinueLoop
End If

我猜您的检查失败,因为您将短文件名与完整文件名进行比较。(您也可以硬编码到 macro.pub 的整个路径)

于 2015-09-22T21:32:46.703 回答