excelのマクロで、指定したフォルダ内のcsvデータすべてに対して、「Di_DegC」と入力されているセルの列番号を取得してその列の平均値を取得し、平均値がある範囲内ならそのcsvファイルの名前を変更するというマクロを作りたいと考えています。
Sub Datarename() Dim path, FSO, file, files Dim ItemCol As Long Dim LastRow As Long Dim AVGC As Double path = Range("B2").Value Set FSO = CreateObject("Scripting.FileSystemObject") Set files = FSO.GetFolder(path).files For Each file In files If file.Name = "*.csv" Then ItemCol = file.Rows(1).Find("Di_DegC").Column LastRow = file.Columns("ItemCol").End(xlDown).Row AVGC = WorksheetFunction.Average(file.Range(Cells(ItemCol, 2), Cells(ItemCol, Lastlow))) If 120 < AVGC < 130 Then Name file As "*_WarmUp.csv" Else If 200< AVGC < 210 Then Name file As "*_Heat.CSV" End If End If Next MsgBox "完了" End Sub
こちらのプログラムをかいたところ、
ItemCol = file.Rows(1).Find("Di_DegC").Column
ここで実行時エラー438が出ているようです。
1行目のどこかにあるDi_DegCを検索して列番号を返すプログラムだと思うのですが、何か間違っていますか?vba初心者につき教えていただけると助かります。

下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2022/09/15 01:44
2022/09/15 02:05