한 책의 범위를 다른 책의 지정된 위치에 복사합니다.

5926 단어 VBAExcelExcelVBA
이번에는 마지막 배열과 반복 구문 등을 사용하여 수정 된 매크로
「같은 폴더내에 있는 「○○리스트.xlsx」의 임의의 시트 내용을 각각 다른 파일에 전기한다」
셀을 참조하여 움직이는 것으로 개수했습니다.

아래 그림과 같이 셀 B1 이후에 전기하고 싶은 시트의 이름을 기입해 갑니다.
전기 테스트 2 버튼에 tenki2 매크로가 등록되어 있습니다.

Sub tenki2()

'転記用のブック&シート名の記入範囲をコピーする 
    Cells(1, 1).Activate
    ActiveSheet.UsedRange.Copy

'○○一覧を開いて転記用シートを挿入し、セルA1に貼り付けする
    Workbooks.Open ThisWorkbook.Path & "\◯◯一覧.xlsx"
    Worksheets.Add Before:=Sheets(1)
    ActiveSheet.Name = "転記用"
    Cells(1, 1).Activate
    ActiveSheet.Paste

'変数の宣言
    Dim i As Long
    Dim maxSheetCount As Long
    Dim sheetName As String

'参照するセルの一番右の位置を確認する
    maxSheetCount = Cells(1, Columns.Count).End(xlToLeft).Column

'転記用シートからシート名の入っているセルを指定する
    For i = 2 To maxSheetCount
        Worksheets("転記用").Activate
        sheetName = Cells(1, i)

'シート内容を転記する
        Worksheets("転記用").Activate
        Worksheets(sheetName).Activate
        Cells(1, 1).Activate
        Worksheets(sheetName).UsedRange.Copy
        Workbooks.Open ThisWorkbook.Path & "\" & sheetName & "YYMMDD.xlsx"
        Worksheets("データ").Range("A1").Select
        ActiveSheet.Paste
        Range("A1").Select
        ActiveWorkbook.Save
        ActiveWindow.Close
   Next i

'○○一覧を保存せずに閉じる
    Application.DisplayAlerts = False
    ActiveWindow.Close
    Application.DisplayAlerts = True
End Sub

셀의 값을 참조 시키는데 일부러 새로운 시트를 작성해 copipe 한 것은 먼 곳도 생각합니다만・・・.
다른 방안은 일과 같이 에러가 되어 버렸습니다.
그렇지만, 어떻게든 참조하고 싶은 시트의 수나 이름이 바뀌어도 대응할 수 있는 느낌이 되어 왔습니다!
다음 번에는 메시지 상자를 사용하고 싶습니다.

좋은 웹페이지 즐겨찾기