2017-07-26 23 views
1

この問題が発生したことはありますか?VBA:デザインモードのトリガーと割り込みプログラム

私が実行していますプログラムは、このようなものです:

  1. するフォルダ内のファイルを検索し
  2. フォルダから
  3. オープンドキュメント 配列に
  4. 読む表2から
  5. ループまたは1
  6. 閉じますドキュメント、セット=無し
  7. スプレッドシートに配列を書き込む。

私が開いているドキュメントでは、何らかの理由でデザインモードがトリガされてしまいます。これは、プログラムを終了する私のプログラムの中断を引き起こし、私のマクロが行った進歩を失い、再び始める原因となります。

私はこのような事態を避けるため、あるいは理由を理解するための方法はありますか?ドキュメントを開くときにドキュメント自体がデザインモードであるとは考えていません。何らかの理由で機能がトリガーされているだけです。

は、ここで私は、文書を開いたときのためのコードです:任意の応答に

For f = LBound(strPaths) To UBound(strPaths) 
    Set Files = New Collection 
    dirpath = strPaths(f) 
    strFile = Dir(dirpath & "*.xls*")  ' Record file into string. 
    Do While strFile <> "" 
     Files.Add strFile 
     strFile = Dir 
    Loop 
    numCSV = numCSV + Files.count 
    For Each strFile In Files 
     dirpath = strPaths(f) 
     wbkPath = dirpath & strFile 
     If InStr(1, wbkPath, "Bulk") > 0 Then GoTo NextFile 
     nrow = OpenDoc(wbkPath, wbkCSV) 
     If Not nrow <= 1 Then 
      scopeArray(k) = PullScope(wbkCSV, wshPalette, strFile, roffset, nrow, x) 
      roffset = roffset + nrow 
      k = 1 + k 
      ReDim Preserve scopeArray(k) 
     End IfNextFile: 
    Next strFile 
Next f 

Public Function OpenDoc(wbkPath, wbkCSV As Workbook) As Long 
    Dim r As Integer 

' With workbook still open, process. 
    Application.AskToUpdateLinks = False 
    Application.DisplayAlerts = False 
    Set wbkCSV = Workbooks.Open(wbkPath) 
    Application.DisplayAlerts = True 
    Application.AskToUpdateLinks = True 
    ' On Error GoTo NextDoc 
    Set wshTemp = wbkCSV.Worksheets(1) 

    r = WorksheetFunction.CountA(wshTemp.Columns(6)) - 1 
If r <= 1 Then 
    wbkCSV.Close 
    Set wbkCSV = Nothing 
End If 
OpenDoc = r 
End Function 

心から感謝!

+0

'strPaths()'の値はバックスラッシュで終わりますか?あなたはあなたの投稿からその部分を去ったようです。 – braX

+0

実際それはそうです。それにはいくつかの影響がありますか?それらがフォーマットされる方法は "C:\ Folder \ Subfolder \" –

答えて

0

私はこれについていくつかのアップデートを提供すると考えました。

私はまだ決定していません正確にこれを引き起こしていたものの、コード実行中にコンピュータを使用していたという単純な事実でした。次の行を追加し

は、このエラーの再発を停止:

Application.Interactive = False 
' Code 
Application.Interactive = True 

私はF5とさわやかなWebブラウザに私の中毒の可能性が高い犯人だったと思われます。

関連する問題