У меня возникли проблемы с назначением значений из одного диапазона рабочей книги в диапазон в моей текущей книге. Когда я назначаю свой диапазон с помощью Range («A1: C1»), этот код работает нормально, однако, когда мой диапазон определен с использованием Range (Cells (1,1), Cells (1,3)), функция не работает:VBA Excel: присвоение значений диапазона новому диапазону
Sub CopyRange()
Dim inputExcel As Excel.Application, BookA As Workbook
Path_A = ThisWorkbook.Path & "\Book_A.xlsx"
Set inputExcel = New Excel.Application
Set BookA = inputExcel.Workbooks.Open(Path_A, ReadOnly:=True)
'THIS WORKS:
ThisWorkbook.Sheets(1).Range("A1:C1").Value = _
BookA.Sheets(1).Range("A1:C1").Value
'THIS DOESN'T WORK:
ThisWorkbook.Sheets(1).Range(Cells(1, 1), Cells(1, 3)).Value = _
BookA.Sheets(1).Range(Cells(1, 1), Cells(1, 3)).Value
End Sub
Я знаю, что это должна быть простая проблема синтаксиса, но я не смог понять это. Как я могу получить задания Range с использованием «Ячейки»?
Нет у вас нет, и это не решает проблему, так как в любом случае 'Sheet1.Cells (1,1) 'оценивает строку *, а не объект адреса или диапазона. :) –
да, так и нет, попробуйте и посмотрите :-) Это довольно стандартный метод. – JosieP
Ваш второй метод должен работать, я думаю. Но первый метод: для меня возникает 1004: 'Sheet2.Range (Sheet2.Cells (1, 1)). Value = Sheet1.Range (Sheet1.Cells (1, 1)). Значение« –