0

異なるワークブックの 2 つのワークシート間でヘッダーを比較し、メインのワークブックにデータをコピーして貼り付けるコードがあります。

   'lastCol = Worksheets("Dashboard").Cells(3, Columns.Count).End(xlToLeft).Column
   lastCol = 15
   lastrow = Worksheets("Dashboard").Cells(Rows.Count, 1).End(xlUp).Row
   Set cmpRng = Range(Cells(1, 1), Cells(3, lastCol))
   a = cmpRng
   i = Cells(Rows.Count, 1).End(xlUp).Row

   Set Wbk = Workbooks.Open("Z:\RMG\RMG Data Master\Global_HEADCOUNT.xls")
   Worksheets("GLOBAL_HEADCOUNT").Select
   Mastcol = Cells(1, Columns.Count).End(xlToLeft).Column
   j = Cells(Rows.Count, 1).End(xlUp).Row
   Set mastRng = Range(Cells(1, 1), Cells(1, Mastcol))
   b = mastRng

For k = 1 To lastCol
    For n = 1 To Mastcol
        If UCase(a(3, k)) = UCase(b(1, n)) Then
        Windows("Global_HEADCOUNT").Activate
            Worksheets("GLOBAL_HEADCOUNT").Range(Cells(2, n), Cells(j, n)).Copy
            Windows("Dashboard.xlsm").Activate
            Worksheets("Dashboard").Select
            Cells(i + 1, k).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
            Exit For
        End If
    Next
Next
Call Wbk.Close(False)

ここでの問題は、ファイル名が変更されるたびに、ユーザーがコードを入力して変更する必要があることです。これにより、問題が発生する可能性があるため、ダイアログボックスを使用してファイルを選択する代替手段を提供することを避けたいと考えています

私が知っていること:

私はこれを達成する方法について少し知っていますが、

'The folder containing the files to be recap'd
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.InitialFileName = "G:\Work\" '<----- Change this to where the files are stored.
fd.InitialView = msoFileDialogViewList
'allow multiple file selection
fd.AllowMultiSelect = False
fd.Filters.Add "Excel Files", "*.xls*"
filechosen = fd.Show
'Create a workbook for the recap report
Set Master = ThisWorkbook
If filechosen = -1 Then

しかし、私は上記のコードを何か他のものに使用しており、コードをそれと統合するのに苦労しています...私が求めているのは、達成しようとしている結果が少し異なるため、それを行うための少しのガイダンスだけです:) ty in前進

4

1 に答える 1