Добрый день уважаемые специалисты и просто гуру Excel есть некий цикл по ячейкам так как MyRange3 это диапазон столбца условно $I$44:$I$47 Дело в том что в этих ячейках находятся Даты , необходимо найти наименьшую дату и определить её Address но в диапазон могут попасть так же и "Н/Д" У меня Минимальное значение не рассчитывается И не понимаю как сделать так, чтобы у меня было значение Range наименьшей даты то есть её Address [vba]
Код
Dim Minn2 as date Dim vItem3 , MyRange3 as range Dim iSearchText15$ iSearchText15$="*Дата*рег-ции*" Set iCell = UsedRange.Find(iSearchText15$, , xlFormulas, xlPart).Offset(1, 0) Set MyRange3 = Range(iCell, iCell.End(xlDown)) Minn2 = Application.WorksheetFunction.Min(Range("MyRange3")) For Each vItem3 In MyRange3
vItem3
Next
[/vba] Спасибо за внимание
Добрый день уважаемые специалисты и просто гуру Excel есть некий цикл по ячейкам так как MyRange3 это диапазон столбца условно $I$44:$I$47 Дело в том что в этих ячейках находятся Даты , необходимо найти наименьшую дату и определить её Address но в диапазон могут попасть так же и "Н/Д" У меня Минимальное значение не рассчитывается И не понимаю как сделать так, чтобы у меня было значение Range наименьшей даты то есть её Address [vba]
Код
Dim Minn2 as date Dim vItem3 , MyRange3 as range Dim iSearchText15$ iSearchText15$="*Дата*рег-ции*" Set iCell = UsedRange.Find(iSearchText15$, , xlFormulas, xlPart).Offset(1, 0) Set MyRange3 = Range(iCell, iCell.End(xlDown)) Minn2 = Application.WorksheetFunction.Min(Range("MyRange3")) For Each vItem3 In MyRange3
необходимо найти наименьшую дату и определить её Address
функцией МИН вы только находите значение, а получить Range, можно с помощью ИНДЕКС или вариант циклом, создаете массив значений Вашего MyRange3, и находите индекс минимального неошибочного значения
необходимо найти наименьшую дату и определить её Address
функцией МИН вы только находите значение, а получить Range, можно с помощью ИНДЕКС или вариант циклом, создаете массив значений Вашего MyRange3, и находите индекс минимального неошибочного значенияsboy
Вот файл там два макроса один работает(Sheets2_min_max) другой не работает(OpenFiles) с циклом по книгам не работает Примечание: при выборе папки выбирать ту же лист куда данные тянуться не включён в цикл
Вот файл там два макроса один работает(Sheets2_min_max) другой не работает(OpenFiles) с циклом по книгам не работает Примечание: при выборе папки выбирать ту же лист куда данные тянуться не включён в циклElhust
Public Sub www() With ThisWorkbook OpenFileName = Dir(.Path & "\" & "*.xls*") Do While OpenFileName <> "" ' Считываем наименования фалов в директории If OpenFileName <> .Name Then ' Исключаем случай повторного открытия Главной книги Set OpenBook = GetObject(.Path & "\" & OpenFileName) 'ActiveWorkbook ' Запоминаем ссылку на открытую книгу On Error Resume Next ' For Each sh In OpenBook.Worksheets Set icell = sh.UsedRange.Find("Минимальное значение", , xlFormulas, xlPart).Offset(3, 2) If Not icell Is Nothing Then Set MyRange = sh.Range(icell, icell.End(xlDown)).SpecialCells(2, 1) Minn = WorksheetFunction.Max(MyRange.Cells) Minn2 = WorksheetFunction.Min(MyRange.Cells) With .Sheets(1) lLastrow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 .Cells(lLastrow, 1).Value = sh.Name .Cells(lLastrow, 2).Value = OpenFileName .Cells(lLastrow, 3).Value = "Максимальная дата " & Format(Minn, "DD.MM.YYYY") .Cells(lLastrow, 4).Value = "Минимальная дата " & Format(Minn2, "DD.MM.YYYY") End With Set icell = Nothing End If Next sh OpenBook.Close False ' Закончили обработку текущей книги. Закрывам книгу'если поставить False - книга будет закрыта без сохранения End If OpenFileName = Dir ' Считываем наименование следующего файла в директории Loop End With End Sub
[/vba]
[vba]
Код
Public Sub www() With ThisWorkbook OpenFileName = Dir(.Path & "\" & "*.xls*") Do While OpenFileName <> "" ' Считываем наименования фалов в директории If OpenFileName <> .Name Then ' Исключаем случай повторного открытия Главной книги Set OpenBook = GetObject(.Path & "\" & OpenFileName) 'ActiveWorkbook ' Запоминаем ссылку на открытую книгу On Error Resume Next ' For Each sh In OpenBook.Worksheets Set icell = sh.UsedRange.Find("Минимальное значение", , xlFormulas, xlPart).Offset(3, 2) If Not icell Is Nothing Then Set MyRange = sh.Range(icell, icell.End(xlDown)).SpecialCells(2, 1) Minn = WorksheetFunction.Max(MyRange.Cells) Minn2 = WorksheetFunction.Min(MyRange.Cells) With .Sheets(1) lLastrow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 .Cells(lLastrow, 1).Value = sh.Name .Cells(lLastrow, 2).Value = OpenFileName .Cells(lLastrow, 3).Value = "Максимальная дата " & Format(Minn, "DD.MM.YYYY") .Cells(lLastrow, 4).Value = "Минимальная дата " & Format(Minn2, "DD.MM.YYYY") End With Set icell = Nothing End If Next sh OpenBook.Close False ' Закончили обработку текущей книги. Закрывам книгу'если поставить False - книга будет закрыта без сохранения End If OpenFileName = Dir ' Считываем наименование следующего файла в директории Loop End With End Sub