|
こんばんは
何が聞きたいのか分かりません。
>cells(65536,1).End(xlup).Row
は、アクティブになっているシートのA列の最終行という意味になります。
取り敢えず、コードの説明だけ。
と言っても、momoさんの質問文を当てはめただけですけど。
Sub test1()
Dim sFile As String
Dim i As Long
Dim fso As Object
Dim s As String
'FileSystemObject生成
Set fso = CreateObject("Scripting.FileSystemObject")
With Application.FileSearch
'北高校というフォルダと
'その下の全てのフォルダ
'内のExcelファイルを
'検索する。
.NewSearch
.LookIn = ThisWorkbook.Path & "\北高校"
.SearchSubFolders = True
.FileName = "*.xls"
.MatchTextExactly = True
'Excelファイルが存在したら
If .Execute() > 0 Then
'そのファイル数だけループし
For i = 1 To .FoundFiles.Count
'それぞれの親フォルダ名を取得し
s = fso.GetFile(.FoundFiles(i)).ParentFolder.Name
'そのフォルダ名「千葉県」の時
If s = "千葉県" Then
'そのフォルダへのフルパスを取得し
sFile = fso.GetParentFolderName(.FoundFiles(i))
'該当したExcelファイルの「情報」シートへの参照式を生成する。
sFile = "='" & sFile & "\[" & Dir(.FoundFiles(i)) & _
"]情報'!"
With Worksheets(s).Cells(65536, 1).End(xlUp)
'管理.xlsの「千葉県」シートのA列最終行
'の一つ下のセルへ「情報」シートのセルA1
.Offset(1).Formula = sFile & "R1C1"
'への参照式をセットし、値に変換する。
.Offset(1).Value = .Offset(1).Value
'A列最終行の一つしたの一つ右のセルへ
'「情報」シートのセルB1への参照式をセット
.Offset(1, 1).Formula = sFile & "R1C2"
'し、値に変換する。
.Offset(1, 1).Value = .Offset(1, 1).Value
End With
End If
Next
End If
End With
Set fso = Nothing
End Sub
|
|