Всем привет!
Подскажите, пожалуйста, чего может не срабатывать 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
Подскажите, пожалуйста, чего может не срабатывать 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
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?