Страницы: 1
RSS
ВПР зависает при большой таблице
 
Добрый день!  
 
У меня возникла проблема с выбором данных по таблице.  
Ситуация следующая- макросом вставляю фунцию ВПР в Листе1 по таблице, находящейся в Листе2, но талица содержит данные с ячейки A1 по AJ65536.    
И... файл зависает надолго...  
Не могли бы Вы подсказать- может есть возможность реализовать поиск значений по таблице макросом, но без использования ВПР?
 
Добрый день The_Prist!  
 
надо попробовать... но я не понимаю, как реализовать тогда условие    
=если(или(еошибка(впр(C26;Лист2!$A$1:$E$8;3;0));впр(C26;Лист2!$A$1:$E$8;3;0)=0);"";впр(C26;Лист2!$A$1:$E$8;3;0))
 
пробовал передлать функцию "под себя" ни чего не получилось...  
Уважаемый The_Prist, Вы не посмотрите файлик?  
 
Данные на Листе3 найти и вставить в Лист1
 
А можно на самый самый первоначальный код посмотреть? Ну тот который навел на мысль "реализовать поиск значений по таблице макросом, но без использования ВПР".
KL
 
Спасибо, большое The_Prist!!!  
 
на основании Вашего макроса, решил таки задачу! Респект Вам!  
 
... а макрос неправильно указал, потому что сначала проверил работу, затем составил пример и не исправил условия макроса.  
 
KL- первоначальный код- это тихий ужас! вставил расчет ВПР через макрорекордер, и он у меня считал подстановку в 4 столбца- около 4.5 часов! если бы не помощь, уважаемого The_Prist, то было бы худо мне...  
 
Еще раз всем спасибо и дай Бог Вам здоровья!!!
 
Еще такой вариант (скорости не сравнивал)  
 
Sub qwer()  
   Dim rngData As Range, rngRef As Range  
   Dim lngCalcStatus As Long  
     
   lngCalcStatus = Application.Calculation  
   With Worksheets(1)  
       Set rngData = .Range(.Cells(2, 4), .Cells(.Rows.Count, 4).End(xlUp)).Offset(, 5)  
   End With  
   Set rngRef = Worksheets(2).Range("A2:D25")  
         
   Application.Calculation = xlCalculationManual  
     
   With rngData  
       .Value = "=T(VLOOKUP(RC[-5]," & rngRef.Address(, , xlR1C1, True) & ",2,0))"
       .SpecialCells(xlCellTypeFormulas, xlErrors) = ""  
       .Value = .Value  
   End With  
     
   Application.Calculation = lngCalcStatus  
End Sub
KL
Страницы: 1
Читают тему
Наверх