Страницы: 1
RSS
-= Не срабатывает Resize =-
 
Всем привет!  
Подскажите, пожалуйста, чего может не срабатывать Resize на некоторых ПК?  
Макросом ниже открывается книга и в неё вставляются определенные данные по критерию.  
На 2х из 10ти ПК - Resize не срабатывает.  
Может ли это быть из-за какой-то безопасности? Или определенных настройках Excel?  
Также в начале прописал Option Private Module.  
Выдает ошибку 1004 на строке -    
ActiveWorkbook.Sheets(1).Range("A1").Resize(i, iColumns).Value = arr2  
Оригинальный файл прилагаю. Правда коды без комментариев, т.к. писал сугубо для себя :)  
 
 
Sub m_open()  
   Application.DisplayAlerts = False  
   Application.ScreenUpdating = False  
   Application.Calculation = xlCalculationManual  
 
   Dim i2 As Long  
   Dim wb As String  
   Dim iLastrow As Long  
   Dim arr1()  
   Dim arr2()  
   Dim j As Long  
   Dim j2 As Long  
   Dim i As Long  
   Dim ii As Long  
   Dim iColumns As Long  
 
   With ThisWorkbook.Sheets(1)  
       iLastrow = .Cells(.Rows.Count, 1).End(xlUp).Row  
       For i2 = 2 To iLastrow  
           wb = ThisWorkbook.Sheets(1).Range("A" & i2).Value & "\Aktual.xls"  
           Workbooks.Open Filename:=wb  
           ActiveWorkbook.ActiveSheet.Cells.ClearContents  
 
           With ThisWorkbook.Sheets(2).Range("A1").CurrentRegion  
               iColumns = .Columns.Count  
               ReDim arr2(1 To .Rows.Count, 1 To iColumns)  
               arr1 = .Value  
               For j = 1 To .Rows.Count  
                   If arr1(j, 14) = ActiveWorkbook.FullName Then  
                       i = i + 1  
                       For ii = 1 To iColumns  
                           arr2(i, ii) = arr1(j, ii)  
                       Next  
                   End If  
               Next  
               ActiveWorkbook.Sheets(1).Range("A1").Resize(i, iColumns).Value = arr2  
           End With  
 
           ActiveWorkbook.Close (True)  
       Next  
   End With  
 
   Application.DisplayAlerts = True  
   Application.ScreenUpdating = True  
   Application.Calculation = xlCalculationAutomatic  
 
End Sub
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
если в цикле по j условие не выполнится ни разу, то i останется равным 0  
Resize на 0 строк даст ошибку.  
 
а вы как хотели? :)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
А если я на 110% уверен, что в цикле по j условие выполняется? :)  
ps. ikki меня можно на ты (Богдан)
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
ну там у тебя еще размеры массива и диапазона ячеек не совпадают (в arr2 может быть больше строк), но, имхо, это не должно вызвать такую ошибку...  
 
пс. насчет 110% - верю, но, м.б., НА ВСЯКИЙ СЛУЧАЙ, проверить?  
вписать    
if i>0 then    
и посмотреть?  
 
ппс. так и не понял - зачем приложен файл, если непонятно, какие кнопки в какой последовательности жать, данных на листах нету, да и привязано всё к файлам, которых тож нету :)  
 
 
пппс. вот это:  
>> Resize не срабатывает.  
>> Может ли это быть из-за какой-то безопасности? Или определенных настройках Excel?  
- ерунда.    
хотя, (по себе сужу) когда макрос ведёт себя необъяснимо, начинаешь верить в злой рок и марсиан с барабашками. но всё, в конце концов, оказывается проще - виноват кодер. а марсиане не прилетят :(
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
>>> м.б., НА ВСЯКИЙ СЛУЧАЙ, проверить?  
проверю на работе, а вдруг...  
 
>>> зачем приложен файл ... привязано всё к файлам, которых тож нету :)  
остальных файлов нет - т.к. информация конфиденциальна и тестить могу только с рабочего компа - на, котором работает всё идеально :(  
 
>>> ерунда  
перепробовал много способов - просто не знаю на, что уже думать и в чём проблема  
 
>>> создаст массив с кол-вом строк значительно превосходящим  
возможно, нужно будет глянуть кол-во строк, т.к. столбцов только около 20ти  
Но, а если файл с расширением .xls открывать в 2007м экселе разве кол-во строк не изменится?  
 
Спасибо за советы :)
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
{quote}{login=LightZ}{date=29.05.2012 09:15}{thema=-= Не срабатывает Resize =-}{post}На 2х из 10ти ПК - Resize не срабатывает.{/post}{/quote}А данные на всех этих ПК обрабатываются одни и те же?
 
У меня такое часто случается - что-то происходит удивительное и вовсе не ожидаемое  
Мне кажется, в этом случае лучше всего в нужный момент восстановить ScreenUpdating, поставить STOP, а вместо заполнения массивом просто выделить диапазон (Select)  
Он, конечно, будет возражать и сопротивляться, но в этот момент близости многое станет понятным, например, подтвердится или опровергнется предположение The_Prist (очень правдоподобное)
 
>>> А данные на всех этих ПК обрабатываются одни и те же?  
Нет, данные разные, сходится только кол-во столбцов и их заголовки  
 
v__step - спасибо, попробую ещё так, может пойму где ошибка
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Для меня такие случаи - интрига знакомства с чем-то неожиданным  
В этот сокраментальный момент да пребудет с тобой ИванСусанинSelect  
А если что по-прежнему не сложится, поможет всевидящее око ObjectBrowser  
Богдан, я не сомневаюсь в твоей победе!
Страницы: 1
Наверх