Столкнулся с задачей по написанию макроса для нахождения наименьшего значения из закрытого файла эксел.
Когда заношу формулу все работает, но загвоздка в том что файл где находится массив очень огромный (1,5 ГБ). Решил написать макрос, может чем-нибудь поможете? Файлы прилагаются.
Заранее благодарю
Добрый день эксперты
Столкнулся с задачей по написанию макроса для нахождения наименьшего значения из закрытого файла эксел.
Когда заношу формулу все работает, но загвоздка в том что файл где находится массив очень огромный (1,5 ГБ). Решил написать макрос, может чем-нибудь поможете? Файлы прилагаются.
если формулы работают, может только немного упростить?: [vba]
Код
Sub ertert() Dim x, i& With Sheets("data") With .Range("C4:D" & .Cells(Rows.Count, 3).End(xlUp).Row) x = .Value For i = 1 To UBound(x) ' x(i, 1) = "=SMALL('D:\Загрузки\[D.xls]d'!R" & x(i, 1) & "C10:R" & x(i, 1) & "C26,RC[-2])" x(i, 1) = "=SMALL('D:\[D.xls]d'!R" & x(i, 1) & "C10:R" & x(i, 1) & "C26,RC[-2])" Next i .Offset(, 3).Resize(, 1).Value = x End With End With End Sub
[/vba]
если формулы работают, может только немного упростить?: [vba]
Код
Sub ertert() Dim x, i& With Sheets("data") With .Range("C4:D" & .Cells(Rows.Count, 3).End(xlUp).Row) x = .Value For i = 1 To UBound(x) ' x(i, 1) = "=SMALL('D:\Загрузки\[D.xls]d'!R" & x(i, 1) & "C10:R" & x(i, 1) & "C26,RC[-2])" x(i, 1) = "=SMALL('D:\[D.xls]d'!R" & x(i, 1) & "C10:R" & x(i, 1) & "C26,RC[-2])" Next i .Offset(, 3).Resize(, 1).Value = x End With End With End Sub
Sub ertert() Dim x, i& With Sheets("data") With .Range("C4:D" & .Cells(Rows.Count, 3).End(xlUp).Row) x = .Value For i = 1 To UBound(x) 'R" & x(i, 1) - 'это номер строки, который записан в ст. С x(i, 1) = "=SMALL('D:\Загрузки\[D.xls]d'!R" & x(i, 1) & "C10:R" & x(i, 1) & "C26,RC[-2])" ' x(i, 1) = "=SMALL('D:\[D.xls]d'!R" & x(i, 1) & "C10:R" & x(i, 1) & "C26,RC[-2])" Next i With .Offset(, 3).Resize(, 1) .Value = x .Value = .Value 'и можно ли сразу вставлять как значение? Можно ) End With End With End With End Sub
[/vba] а вот адрес ячейки - в смысле, какой ячейки?
Насчет значений можно так: [vba]
Код
Sub ertert() Dim x, i& With Sheets("data") With .Range("C4:D" & .Cells(Rows.Count, 3).End(xlUp).Row) x = .Value For i = 1 To UBound(x) 'R" & x(i, 1) - 'это номер строки, который записан в ст. С x(i, 1) = "=SMALL('D:\Загрузки\[D.xls]d'!R" & x(i, 1) & "C10:R" & x(i, 1) & "C26,RC[-2])" ' x(i, 1) = "=SMALL('D:\[D.xls]d'!R" & x(i, 1) & "C10:R" & x(i, 1) & "C26,RC[-2])" Next i With .Offset(, 3).Resize(, 1) .Value = x .Value = .Value 'и можно ли сразу вставлять как значение? Можно ) End With End With End With End Sub
[/vba] а вот адрес ячейки - в смысле, какой ячейки?nilem
Sub ertert33() Dim x, i&, rw& With Sheets("data") With .Range("C4:D" & .Cells(Rows.Count, 3).End(xlUp).Row) x = .Value For i = 1 To UBound(x) rw = x(i, 1) 'номер строки, который записан в ст. С x(i, 1) = "=SMALL('D:\Загрузки\[D.xls]d'!R" & rw & "C10:R" & rw & "C26,RC[-2])" x(i, 2) = "=ADDRESS(RC[-4],MATCH(RC[-1],'D:\Загрузки\[D.xls]d'!R" & rw & "C10:R" & rw & "C26,0)+9,4)" Next i With .Offset(, 3) .Value = x .Value = .Value 'и можно ли сразу вставлять как значение? Можно ) End With End With End With End Sub
[/vba]
Lion79, привет пробуем: [vba]
Код
Sub ertert33() Dim x, i&, rw& With Sheets("data") With .Range("C4:D" & .Cells(Rows.Count, 3).End(xlUp).Row) x = .Value For i = 1 To UBound(x) rw = x(i, 1) 'номер строки, который записан в ст. С x(i, 1) = "=SMALL('D:\Загрузки\[D.xls]d'!R" & rw & "C10:R" & rw & "C26,RC[-2])" x(i, 2) = "=ADDRESS(RC[-4],MATCH(RC[-1],'D:\Загрузки\[D.xls]d'!R" & rw & "C10:R" & rw & "C26,0)+9,4)" Next i With .Offset(, 3) .Value = x .Value = .Value 'и можно ли сразу вставлять как значение? Можно ) End With End With End With End Sub
в след. столбце нужно получить данные из файла B.xls, лист b, зная номер строчки и номер столбца
Lion79, этот вопрос уже не относится к теме "поиск наименьшего значения по индексу", не так ли? Не надо складывать все вопросы в одну тему. Читайте Правила форума
в след. столбце нужно получить данные из файла B.xls, лист b, зная номер строчки и номер столбца
Lion79, этот вопрос уже не относится к теме "поиск наименьшего значения по индексу", не так ли? Не надо складывать все вопросы в одну тему. Читайте Правила форумаPelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816