私は、他の人が見ているxlsmがディレクトリ内のすべての.xslxファイルを実行し、サブを実行して保存します。 (ありがとうTabias) このサブの中で私は今、3番目のファイルの最後の列を追加するものを追加しようとしています。 私の最初の問題は、ソースファイルを定義する方法です。私たちは、正確なファイルから同様の名前でデータを取得する必要があります。だから、MC12february.xlsxとKA.xlsxからコピーするMC.xslxのAHSはKAwhateverdate.xlsxexcel-VBA:ダイナミックなパスと名前を持つ最後の列をコピーする
Set wbA = Workbooks.Open("C:\files" & "\" & ActiveWorkbook.Name & "*.xlsx")
からインポートする必要があり、残念ながら、active.workbook.nameは拡張子が含まれるため、ORあなたたちは私の解決策を伝えることができOR私はファイルの日付+名前を最初に保存してwbA = Workbooks.Open("C:\files" & "\*" & ActiveWorkbook.Name)
に変更する必要がありますか?
シートについても同じです。これらのファイルは、MC、KA、KC、...と呼ばれます。 次はファイルの最後の列を他のファイルの最後の列にコピーしたいので、私はかなり混乱しています。 I found this codeと、それが最も理解できると思った。
Sub import()
Dim Range_to_Copy As Range
Dim Range_Destination As Range
Dim Sheet_Data As Worksheet 'sheet from where we pull the data
Dim Sheet_Destination As Worksheet ' destination
Dim workbook_data As Workbook
Dim workbook_destination As Workbook
Set workbook_data = "N:\blah\deposit" & "\*" & ActiveWorkbook.Name
Set workbook_detination = ActiveWorkbook
Set Sheet_Data = ThisWorkbook.Sheets("Sheet1") 'help, how do i do this?
Set Sheet_Destination = ThisWorkbook.Sheets("Sheet1") ' and this?
Set Range_to_Copy = sht.UsedRange.Rows(sht.UsedRange.Rows.Count).Row
Set Range_Destination = sht.UsedRange.Rows(sht.UsedRange.Rows.Count).Row
Range_to_Copy.Copy Range_Destination 'this copies from range A to B (basically A.copy B), but i changed variable names to make it easier...
'you can simplify without variables like this:
'Sheets("Sheet1").Range("D1").Copy Sheets("Summary).Range("A1") <===== does the same as the above coding
もっと簡単な解決策のどれも適合していないようです。 example
私が完全に最後の列とシートの名前を定義する方法に固執しています。このコードは、私が行うことでチェックするために完成しないことです。誰かが私を正しい道につけることができますか?ありがとうございました。
申し訳ありませんが、もう少し問題を明確にすることはできますか?問題はあなたのシートを開くことですか?ディレクトリに.xlsxファイルがある場合は、[ディレクトリを経由してループする](http://stackoverflow.com/questions/10380312/loop-through-files-in-a-folder-using-vba)または[このページ](http://www.thespreadsheetguru.com/the-code-vault/2014/4/23/loop-through-all-excel-files-in-a-given-folder) 。また、ワークブック名を変数に設定した場合は、 'WBname = Replace(wb.Name、" .xls "、" ")' – BruceWayne
Imという拡張子を削除することができます。私は非常に混沌としています。 – Lara
私は既にKA.xslx、KC.xslx、MC.xslx、WT.xslxというファイルでいっぱいになっているディレクトリをループしています。ループではファイルが開かれています。すべてのシートで空の列がチェックされます。私は、別のファイルの最後の列を現在アクティブなファイルにコピーするステップを追加したいと思います。他のファイルは、ディレクトリ内のすべてのファイルごとに異なります。だからKA.xlsxはKA1564.xlsxと呼ばれるファイルの最後の列をコピーしなければならないし、KC.xlsxはKC68787.xlsx – Lara