2017-08-22 11 views
0

特定のブックを開くと、VBAマクロが実行を停止します。私がブレークモードでコードを実行すると、新しく開いたワークブックに制御が行き渡って、そこに指示がないように思えます。新しいブック(xlsm形式)を開くと、マクロの実行が停止する

私は多くのブックを開き、印刷して閉じようとしています。

私はまた、読み取り専用モードで計算モードを手動で設定していますが、これまでに何も機能していません。

+1

使用しているコードを含めることができますか? – Robby

+0

私は常に、Workbooks.Open'ステートメントを実行すると、VBEのシングルステップモードからすぐに飛び出すことが分かりました。これは、F5キーを押した場合と同じです。しかし、それはマクロが停止することを意味しません。むしろ、マクロが最後まで実行されることを意味します。 (私は通常、 'Open'文の後にブレークポイントを入れて制御を取り戻します) – YowE3K

+0

Sub Openfile() Workbooks.Open(FilePath)、UpdateLinks:= False End Sub – user6879637

答えて

0

すべてのブックを含むフォルダがある場合は、次のように動作します。 このコードは、指定したフォルダ内のExcelファイルの一連の反復ます

Dim objFSO As Object 
Dim objFolder As Object 
Dim objFile As Object 
Dim strPath As String 
Dim intLen As Integer 
Dim strName As String 
Dim wsSheet As Worksheet 

Set objFSO = CreateObject("Scripting.FileSystemObject") 

strPath = "C:\Users\username\Desktop\FolderName" 'Set path of folder with excel files 
Set objFolder = objFSO.GetFolder(strPath) 'Get the folder object associated with the directory 
For Each objFile In objFolder.Files 'Loop through the files in the folder 
    Workbooks.Open (strPath & "\" & objFile.Name) 
    Set wsSheet = Worksheets("Sheet1") 'Name of sheet in excel file 

    ActiveWorkbook.CheckCompatibility = False 'Skip compatibility check 

このコードは指定されたパスに各シートに指定された範囲のPDFファイルをプリントアウトします:

intLen = Len(objFile.Name) - 5 'Remove .xlsx characters from name 
strName = Left(objFile.Name, intLen) 
wsSheet.Range("A1:P58").ExportAsFixedFormat xlTypePDF, "C:\Users\username\Desktop\" & strName & ".pdf", , , , , , False 

このコード保存せずに各ファイルを閉じ、フォルダ内のループを続行します。

Workbooks(strName).Close SaveChanges:=False 'Close excel file without saving 

Next 
+0

はい...私は以下を使用しますワークブックを開くコード サブOpenfile() Workbooks.Open(FilePath)、UpdateLinks:= False End Sub – user6879637

+0

私は自分の答えを編集しました。それがうまくいくかどうか私に教えてください。 – Pslice

関連する問題