VBA Excel: назначение значений диапазона для нового диапазона

У меня возникли проблемы с назначением значений из одного диапазона рабочей книги в диапазон в моей текущей книге. Когда я назначаю свой диапазон с помощью Range («A1: C1»), этот код работает нормально, однако, когда мой диапазон определен с помощью Range (Cells (1,1), Cells (1,3)), функция не работает:

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 с использованием «Ячейки»?

вы должны также квалифицировать вызовы Cells с помощью объекта рабочей таблицы:

 ThisWorkbook.Sheets(1).Range(ThisWorkbook.Sheets(1).Cells(1, 1), ThisWorkbook.Sheets(1).Cells(1, 3)).Value = _ BookA.Sheets(1).Range(BookA.Sheets(1).Cells(1, 1), BookA.Sheets(1).Cells(1, 3)).Value 

для смежных диапазонов, таких как вы также можете использовать Resize:

 ThisWorkbook.Sheets(1).Cells(1, 1).Resize(, 3).Value = _ BookA.Sheets(1).Cells(1, 1).Resize(, 3).Value 

Я думаю, что в конечном итоге вы идете об этом не лучшим образом, чтобы решить проблему. В вашем коде есть object.object.object.object запись. object.object.object.object , которая является громоздкой и трудно интерпретировать и исправлять.

Если вы определите еще несколько переменных, код будет легче устранить и решить вашу проблему:

 Dim myAddr as String 'A string to represent the Address of the range myAddr = Cells(1,1).Address & ":" & Cells(1,3).Address ThisWorkbook.Sheets(1).Range(myAddr).Value = BookA.Sheets(1).Range(myAddr).Value 
  • Проблемы диапазона VBA - настройка и динамика
  • VBA: добавление нерегулярных диапазонов
  • Динамический диапазон в Calc OO
  • VBA, кодирующий динамический диапазон (столбец) для сортировки данных
  • Как я могу вызвать массив, созданный другой функцией?
  • excel найти пробел в датах
  • Формулы динамического диапазона
  • SUMIF с переменным диапазоном
  • Проблема при объявлении диапазона (для получения значений из объединенных ячеек)
  • Как использовать значения ячеек для определения диапазона данных диаграммы?
  • Как установить диапазон с помощью функции поиска
  • Interesting Posts

    Закрыть объект Powerpoint с помощью Excel VBA (не используя Powerpoint.Application)

    Excel VBA для открытия файла с датой в имени файла, которая изменяется

    Python: как экспортировать словарь вложенных списков в Excel

    Запрос, ссылающийся на другой запрос

    VBA SumIF между двумя массивами

    Как использовать результаты поиска Google в Excel VBA?

    Автоматическое создание шаблона Word с помощью VBA

    Запрос с UDF работает в Access, но дает функцию Undefined в выражении (Err 3085) в Excel

    Apache POI анализирует и обрабатывает пустые ячейки

    Сопоставить столбец с электронной таблицей на SQL-сервер и данные дампа на ту же таблицу

    powershell не может добавить более одной записи легенды (серии) в таблицу excel

    JExcel – записать значение ячейки, которое может быть числом или пустым

    Преобразование строк в число в большом наборе данных

    Сравнение двух больших списков с несколькими столбцами (одинаковое число в каждом списке) в excel VBA и … больше материала

    Копирование / сопоставление данных между листами распространения Excel, Vb.net

    Давайте будем гением компьютера.