Здравствуйте. Существует 250 книг в одной папке,в каждой из которых 3 листа. Допустим, листы называются: зарплата, транспортные услуги, стоимость деталей. Задача следующая: найти максимальное и минимальное значение в ячейке С15 листа "стоимость деталей" каждой книги.
Здравствуйте. Существует 250 книг в одной папке,в каждой из которых 3 листа. Допустим, листы называются: зарплата, транспортные услуги, стоимость деталей. Задача следующая: найти максимальное и минимальное значение в ячейке С15 листа "стоимость деталей" каждой книги.tookvk
Dim FSO, TheFolder, TheFiles, AFile Dim x, mn, mx mn = empty Set FSO = CreateObject("Scripting.FileSystemObject") Set TheFolder = FSO.GetFolder("D:\TMP\tookvk\") 'Каталог Set TheFiles = TheFolder.Files For Each AFile In TheFiles If UCase(FSO.GetExtensionName(AFile.Path)) = "XLS" Then With GetObject(AFile.Path) x = .Sheets("стоимость деталей").Range("E15") If mn = empty Then mn = x If mn > x Then mn = x If mx < x Then mx = x End With End If Next
MsgBox "MIN=" & mn MsgBox "MAX=" & mx
[/vba] сохраняете этот текст как *.vbs, выполняете даблкликом. Путь к каталогу конечно сперва пропишите свой. Но довольно долго будет незаметно работать - неинформативно. Если код использовать как макрос - то можно добавить индикацию процесса в статусбаре.
Переносим тему в VBA? Формулами будет очень тяжело, если вообще будет...
Можно скриптом посмотреть: [vba]
Код
Dim FSO, TheFolder, TheFiles, AFile Dim x, mn, mx mn = empty Set FSO = CreateObject("Scripting.FileSystemObject") Set TheFolder = FSO.GetFolder("D:\TMP\tookvk\") 'Каталог Set TheFiles = TheFolder.Files For Each AFile In TheFiles If UCase(FSO.GetExtensionName(AFile.Path)) = "XLS" Then With GetObject(AFile.Path) x = .Sheets("стоимость деталей").Range("E15") If mn = empty Then mn = x If mn > x Then mn = x If mx < x Then mx = x End With End If Next
MsgBox "MIN=" & mn MsgBox "MAX=" & mx
[/vba] сохраняете этот текст как *.vbs, выполняете даблкликом. Путь к каталогу конечно сперва пропишите свой. Но довольно долго будет незаметно работать - неинформативно. Если код использовать как макрос - то можно добавить индикацию процесса в статусбаре.
Переносим тему в VBA? Формулами будет очень тяжело, если вообще будет...Hugo