[解決済み] Excel VBA オートメーション エラー。呼び出されたオブジェクトは、そのクライアントから切断されました。
質問
以前にもこの問題についての言及を見たことがありますが、いくつかの提案を試しましたが、まだエラーが出ます。 私は、他のブックからデータを組み立て、レポートを作成するワークブックを持っています。 その後、新しいワークブックを作成し、レポート情報を新しいブックにコピーし、新しいブックを保存して閉じ、次のレポートに移りたいと思います。 これを10回程度行う必要があります。 シートのコピー&ペーストをしている部分で、次のようなエラーが発生します。
エラー -2147417848 オートメーションエラー 呼び出されたオブジェクトは、次のようになりました。 クライアントとの接続を切断
このエラーについて他の投稿をチェックし、提案された解決策を試しましたが、結果は得られませんでした。興味深いのは、壊れる前にコードの5サイクルをやり遂げることもあれば、2サイクルしかできないこともあるということです。 唯一の一貫性は、常に同じ場所で壊れるということです。
<ブロッククオートfromBook.Sheets("Report").Copy Before:=newBook.Sheets("Sheet1")をコピーします。
モジュールの先頭にExplicitというオプションがあり、それがブレークしているサブの中にグローバルがないことを確認しています。 とはいえ、私が何かを見落としている可能性は十分にあります。 また、Excelシートが互いに歩き回っていないことを確認するために、ある時点で"timer"を入れました。
本当に助かりました
以下は私のサブのコードです。
Sub CreateAndSave(ByRef Reg As Integer, ByVal j As Integer)
Dim fromBook As Workbook
Dim fromSheet As Worksheet
Dim newBook As Workbook
Dim fileExists As Boolean
Dim i As Integer
Dim Holder As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set fromBook = Application.Workbooks("Region_Audit_Report")
Set newBook = Workbooks.Add
With newBook
.SaveAs Filename:="G:\DataTeam\ExcelDev\Audit Report\Region Workbooks\Region" & Reg & " " & Month(Date) & "-" & Day(Date) & "-" & Year(Date) & ".xlsx" _
, FileFormat:=xlOpenXMLWorkbook
End With
Set newBook = Application.Workbooks("Region" & Reg & " " & Month(Date) & "-" & Day(Date) & "-" & Year(Date) & ".xlsx")
fromBook.Sheets("Report").Copy Before:=newBook.Sheets("Sheet1")
fromBook.Sheets("MonthData").Copy After:=newBook.Sheets("Report")
newBook.Sheets("MonthData").Range("A1") = "Month"
newBook.Sheets("MonthData").Range("B1") = "Store#"
newBook.Sheets("MonthData").Range("C1") = "District"
newBook.Sheets("MonthData").Range("D1") = "Region"
newBook.Sheets("MonthData").Range("E1") = "Due Date"
newBook.Sheets("MonthData").Range("F1") = "Comp Date"
newBook.Sheets("MonthData").Range("G1") = "# of Errors"
newBook.Sheets("MonthData").Range("H1") = "Late?"
newBook.Sheets("MonthData").Range("I1") = "Complete?"
newBook.Sheets("MonthData").Range("A1:I1").Interior.ColorIndex = 43
newBook.Save
newBook.Close
Application.DisplayAlerts = True
End Sub
解決方法は?
Excel2000を2010に変換するプロジェクトで、この問題が複数発生しました。以下は、私が見つけた、うまくいっていると思われる方法です。2つの変更を行いましたが、どちらが成功の原因かはわかりません。
1) ファイルの閉じ方と保存方法を変更しました(close & save = trueから、同じファイル名で保存してファイルを閉じるようにしました)。
...
Dim oFile As Object ' File being processed
...
[Where the error happens - where aArray(i) is just the name of an Excel.xlsb file]
Set oFile = GetObject(aArray(i))
...
'oFile.Close SaveChanges:=True - OLD CODE WHICH ERROR'D
'New Code
oFile.SaveAs Filename:=oFile.Name
oFile.Close SaveChanges:=False
2) 私は戻って、コード内のすべての.rangeを探し、それが完全な構成要素であることを確認しました。
Application.Workbooks("workbook name").Worksheets("worksheet name").Range("G19").Value
または(これが正しい構文かどうか100%ではありませんが、これは私が行った「努力」です。)
ActiveSheet.Range("A1").Select
関連
-
[解決済み】「ワークシートクラスの貼り付けメソッドに失敗しました」が時々発生するのはなぜですか?
-
[解決済み] Excel VBAアプリが "Code has been halted "というメッセージで自然停止する。
-
[解決済み] Excel VBA オートメーション エラー。呼び出されたオブジェクトは、そのクライアントから切断されました。
-
[解決済み] VBA関数 - 引数は任意ではない
-
[解決済み] Excelのセルに画像を挿入する【終了
-
[解決済み] エクセルシートにおけるCSVデータの最大行数について
-
[解決済み] UTF8エンコーディングでExcelからCSVに変換する【終了しました
-
[解決済み] Excel VBA Projectのパスワードを解読する方法はありますか?
-
[解決済み] IF文: 条件が偽の場合にセルを空白にする方法("" は機能しません)
-
[解決済み] シートが存在するかどうかのテストまたはチェック
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「ワークシートクラスの貼り付けメソッドに失敗しました」が時々発生するのはなぜですか?
-
[解決済み] Excel VBA オートメーション エラー。呼び出されたオブジェクトは、そのクライアントから切断されました。
-
[解決済み] セル内に改行文字を追加する(CSV)
-
[解決済み] VBAやマクロを使わずにExcelでループさせる方法とは?
-
[解決済み] ExcelでDateTimeを表現する方法
-
[解決済み] どのようにvbaコードで "名前を付けて保存 "を行うには、datestampと私の現在のExcelワークブックを保存するには?
-
[解決済み] EXCELの複数範囲-範囲ごとに異なる回答が必要
-
[解決済み】Excelで特定のテキスト値を自動的に日付に変換しないようにする。
-
[解決済み] VBAでグローバル変数を宣言するにはどうしたらいいですか?
-
[解決済み] IF文: 条件が偽の場合にセルを空白にする方法("" は機能しません)