Я пытаюсь сместить, изменить размер и скопировать диапазон, содержащий данные, и набираю эту строку кода в ближайшем окне:
shAll.Range("A1:I78").Offset(1).Resize(.Rows.Count - 1, .Columns.Count -
1).SpecialCells(xlCellTypeVisible).copy
Когда я нажимаю ввод, я получаю эту ошибку: «Ошибка компиляции: неверное выражение наблюдения»
Это проблема синтаксиса?
Эта часть кода работает нормально, когда выполняется в непосредственном окне:
shAll.Range("A1:I78").Offset(1).select
Это смещено так, как я хочу. Оставшаяся часть - изменить размер и скопировать его.
Кстати, диапазон shAll.Range("A1:I78")
содержит данные во всех ячейках.
Заранее спасибо!
2 ответа
Вы не указали, к какому объекту .Rows
и .Columns
применяются.
Если они относятся к диапазону, то
With shAll.Range("A1:I78")
.Offset(1).Resize(.Rows.Count - 1, .Columns.Count - 1).SpecialCells(xlCellTypeVisible).copy
End with
Или
shAll.Range("A1:I78").Offset(1).Resize(shAll.Range("A1:I78").Rows.Count - 1, _
shAll.Range("A1:I78").Columns.Count - 1).SpecialCells(xlCellTypeVisible).copy
Вы можете указать диапазон имен или указать нужный диапазон.
Worksheets("Sheet").Range("namedrange_d").Resize(, 4).Offset(6, 0).Copy _
Worksheets("Sheet1").Range("namedrange").Resize(, 4).Offset(6, 0)
Похожие вопросы
Новые вопросы
excel
Только для вопросов по программированию для объектов или файлов Excel или для разработки сложных формул. Вы можете объединить тег Excel с VBA, VSTO, C #, VB.NET, PowerShell, OLE-автоматизацией и другими тегами и вопросами, связанными с программированием, если это применимо. Общая помощь по MS Excel для функций одного листа доступна в Super User.