A2:A13にその年の月を入力しようとしています。明らかに、月を入力するだけで済みますが、フォルダー内の12個のワークブックから派生した文字列を使用して月を入力しています。これを行うのは、他の列にも他のデータを入力するため、同じ方法が適用され、便利な演習になると思います。
コードは、含まれているフォルダー内のすべてのブックをループするように設定されています。以下のようにforループを使用して、各ブックから派生した文字列をA2:A13に入力します。ただし、現時点では、各セルには12月が入力されています。
Option Explicit
Sub CompileRandomCheckingData()
Dim MyPath As String, strfilename As String, mnth As String
Dim EOYR As Workbook, indv As Workbook
Dim psdsht As Worksheet, eoyrsht As Worksheet
Dim LRow As Long
Dim i As Integer
Application.DisplayAlerts = False
Application.ScreenUpdating = False
'--> Set Containing Folder
MyPath = "C:\Documents and Settings\alistairw\Desktop\temppsdreports2011"
strfilename = Dir(MyPath & "\*.xls", vbNormal)
'--> If folder is empty then exit
If Len(strfilename) = 0 Then Exit Sub
Do Until strfilename = ""
'--> Define each workbook
Set EOYR = ThisWorkbook
Set eoyrsht = EOYR.Sheets("Sheet1")
Set indv = Application.Workbooks.Open("C:\Documents and Settings\alistairw\Desktop\temppsdreports2011\" & strfilename)
'--> Working with individual workbooks
Set psdsht = indv.Sheets("Sheet1")
With psdsht
LRow = .Range("D" & Rows.Count).End(xlUp).Row
End With
'--> Set Month from Workbook Title
mnth = Split(strfilename, " ")(3)
For i = 2 To 13
With eoyrsht
.Cells(i, 1) = mnth
End With
Next
'--> Copy No. Items
'--> Copy Gross Value
'--> Copy Final Error Value
'--> Tidy Up
indv.Close
strfilename = Dir()
Loop
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
編集:
Forループがメインループで合計12回実行されているので、なぜそれらすべてに12月が入力されているのか理解しています。私は自分で解決策に近づいているかもしれませんが、コメントを歓迎します。