ワークブックを開いて開いていないワークブックに貼り付けることはできますか?コピーしようとしているワークシートには合計30のワークシートが含まれています。私はファイルダイアログを開いてみましたが、時にはそれが卓越しています。卓越性を掛けて、私が欲しいことをしない方法はありますか?前もって感謝します。ワークブックを開いていないワークブックから開いたワークブックにコピー
Dim FileToOpen As String
Application.ScreenUpdating = False
FileToOpen = Application.GetOpenFilename _
(Title:="Please choose a Excel File to Open", _
FileFilter:="Excel Files *.(*.xlsx),xlsx")
If VarType(FileToOpen) = vbBoolean Then
MsgBox "No file selected", vbExclamation, "Sorry!"
Exit Sub
End If
Debug.Assert VarType(FileToOpen) = vbString
With Application.Workbooks.Open(FileToOpen)
.Worksheets(22).UsedRange.Copy ThisWorkbook.Worksheets(2).range("A1")
.Close
End With
を達成するために欲しいもの収まる必要があり、それを開かずにデジタルファイルから何かをアクセスすることはできません。ただし、ユーザーが何かが開かれ、コピーされ、閉じられていることをユーザーが決して理解できないように開くことは可能です。アクセスしたいファイルの正確な位置を知っている場合は、ユーザーの介入なしにコードを開くことができます。それ以外の場所や名前がわからない場合は、FileOpenダイアログを使用します。あなたのコードを投稿してExcelのクラッシュをなぜ見てみましょうか? – Variatus
こんにちは私は上記のようにコードを編集して追加しました –
だから、Excelはちょうどハングすると言います。エラーメッセージはありませんか?デバッグハイライトはありませんか?おそらく、Excelが高速すぎるため、コピーが完了する前にファイルを閉じてしまうだけです。その場合は、おそらく 'ThisWorkbook.Activate'というソースファイルを閉じる前に何かしてみてください。ソースブックとターゲットブックの両方に名前を付けるようにしてください。ソースワークシートとターゲットワークシートの両方に名前を付ける - 厳密には必要ではないが、誰がボスであるかをVBAに知らせるのに適している。 – Variatus