Я получаю эту ошибку в следующей строке кода и не могу понять, почему. Может кто-нибудь объяснить, почему это происходит?Ошибка определения приложения или объекта
Sub Resource_Details()
Dim x As Workbook
Dim y As Workbook
Set x = ThisWorkbook
Set y = Workbooks.Open("C:\Users\turnbull\Documents\Global Unmet Demand\3-extract-Resource details.xls")
y.Sheets("Sheet1").Range("I:O, AB:AJ").EntireColumn.Delete
y.Sheets("Sheet1").Range("OFFSET(Sheet1!A2,0,0,COUNT(Sheet1!$A:$A),44)").Copy
x.Sheets("Resource Details").Range("A2").PasteSpecial xlValues
End Sub
Ошибка в этой строке:
y.Sheets("Sheet1").Range("OFFSET(Sheet1!A2,0,0,COUNT(Sheet1!$A:$A),44)").Copy
Я использовал эту строку кода на следующий макрос и он работает правильно. Я смущен, почему он работает на одном макросе, а не на другом.
Sub Unmet_Details()
Dim x As Workbook
Dim y As Workbook
Set x = ThisWorkbook
Set y = Workbooks.Open("C:\Users\turnbull\Documents\Global Unmet Demand\2-extract-Unmet details.xls")
x.Activate
Sheets("Unmet Details").Activate
Range("Table2").Select
Selection.Delete
y.Activate
AutoFilterMode = False
Range("A1:AR1").AutoFilter
Range("A1:AR1").AutoFilter Field:=8, Criteria1:=Array("Fulfilled", "Requested", "Partially Assigned", "Soft Booked", "Assigned"), Operator:=xlFilterValues
y.Sheets("Sheet1").Range("OFFSET(Sheet1!$A$2,0,0,COUNT(Sheet1!$A:$A),44)").Copy
x.Sheets("Unmet Details").Range("A2").PasteSpecial xlValues
'' OFFSET (Sheet1! A2,0,0, COUNT (Sheet1! $ A: $ A), 44) «' это не название диапазона, поэтому вы не можете его подавать в «Range». Вы можете попробовать 'Application.Evaluate (« OFFSET (Sheet1! A2,0,0, COUNT (Sheet1! $ A: $ A), 44) »), которые * могут * делать то, что вы хотите. Вы также можете попробовать 'Application.WorkSheetFunction.Offset()'. Лучшим подходом было бы исключить 'Offset()' полностью и использовать VBA, чтобы напрямую найти нужную ячейку. –
Используйте VBA для определения диапазона на рабочем листе ** y ** - вместо того, чтобы пытаться использовать функции листа. 'Range.End (xlDown)' может помочь – CallumDA
Спасибо за ваши комментарии. Я требую, чтобы он копировал все ячейки из одного листа в другой, но диапазон будет меняться каждый раз. Вот почему я использовал офсет, это не лучший подход? –