ExcelVBA シートコピー
ExcelVBAで管理表1のシート1へ管理表2のシート2へコピーするVBAを書いてみました。
以下部分を修正したいです。
wbSaki.Worksheets("シート2").Range("A1:VA3000").Copy
こちらの選択範囲を最終行と最終列という風にしたいのですが、うまくコピー貼り付けができないので理由がわかる方がいらっしゃれば教えていただけますでしょうか。
以下全体コード------------------
Sub 管理表1のシート1を管理表2のシート2へを貼り付け() '選択したファイルを取り込み、別のファイルに貼り付ける。
Dim RC As Integer
Dim OpenFileName, fileName, Path, SetFile As String
Dim wbMoto, wbSaki As Workbook
Set wbMoto = ThisWorkbook 'マスターデータ取り込み元をセット
Application.DisplayAlerts = False
Application.ScreenUpdating = False 'BOOKを開かない
RC = MsgBox("管理表1を開きますか?", vbYesNo + vbQuestion, "確認")
If RC = vbYes Then
'サーバー指定 End Withまで
With CreateObject("WScript.Shell")
strCdir = CurDir
.currentdirectory = "ファイル格納先"
OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?")
'ダイアログボックスを表示して、マスターデータファイルを指定します。
If OpenFileName <> "False" Then
SetFile = OpenFileName
Else
MsgBox "キャンセルされました"
Exit Sub 'マスターデータの取り込みをキャンセル
End If
End With
Workbooks.Open fileName:=SetFile, ReadOnly:=True, UpdateLinks:=0
'ダイアログボックスで指定したマスターデータファイルを開きます。
'VBA起動BOOKのシートをクリア
wbMoto.Worksheets("シート1").Cells.Clear
Set wbSaki = Workbooks.Open(Path & SetFile)
'--- オートフィルタをクリアする ---'
If wbSaki.Worksheets("シート2").FilterMode Then wbSaki.Worksheets("シート2").ShowAllData
'ワークブック間のシートをコピーします。
wbSaki.Worksheets("シート2").Range("A1:VA3000").Copy
wbMoto.Worksheets("シート1").Range("A1").PasteSpecial xlPasteValues
Application.CutCopyMode = False 'コピー切り取りを解除
wbSaki.Close False 'マスターデータ取り込み先のファイルを閉じる
Application.ScreenUpdating = True 'BOOKを開かずに作業
Else
MsgBox "処理を中断します"
End If
ThisWorkbook.Worksheets("元のシート").Select 'シート名を指定
Application.DisplayAlerts = True
End Sub
お礼
早速のご回答ありがとうございます。 実行して確認してみます。 ありがとうございます。 ※保存先フォルダはC¥Tempを想定し ファイル名は地域名の予定でした。 説明が足らず申し訳ありません。