次のパスとファイル名があるとします。
P:\...\年次および四半期予算データ\ECMQA 2012Q1.xls
次のことを行う if then ステートメントを書きたいと思います (ステートメントが適切に設定されているかどうかわかりません)。
If InStr(1, "P:\...\Annual and Quarterly Budget Data\ECMQA 2012Q1.xls", "QA", vbTextCompare) > 0 Then
BD.Sheets("Sheet1").Range("C2").value = "2012Q1"
End If
「2012Q1」とだけ入力するのではなく、ファイルから自動で読み込んでほしい。問題は、私が実際に 12 ほどのファイルをループしており、「ECMQA 2012Q1.xls」(または ECMQB 2012Q2.xls など) と「ECM Annual Budget 2012.xlsx」の 2 つのタイプがあることです。
私のファイルが年次ファイルの場合 (ファイルに「年次」が含まれている場合)、次のようにします。
BD.Sheets("Sheet1").Range("C2").value = "2012"
そして、他のファイルと同じように、実際のファイルからこれを読み取ってほしい...「2012」を入力するのではなく
これを行う方法はありますか?
どんな助けでも大歓迎です!
編集:
ループは次のとおりです。
Dim wb As Workbook, sFile As String, sPath As String
Dim itm As Variant
Dim strFileNames As String
sPath = "C:\Actuary\Cash Flow Forecast\Annual and Quarterly Budget Data\"
''Retrieve the current files in directory
sFile = Dir(sPath)
Do While sFile <> ""
strFileNames = strFileNames & "," & sFile
sFile = Dir()
Loop
''Open each file found
For Each itm In Split(strFileNames, ",")
If itm <> "" Then
Set wb = Workbooks.Open(sPath & itm)
''DO LOTS OF CALCULATIONS
'wb.Close True
End If
Next itm