Копирование множества именованных диапазонов с использованием цикла for - PullRequest
0 голосов
/ 25 июня 2019

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

Я хочу сделать это, просматривая именованные диапазоны в целевой книге и копируя эти именованные диапазоны в исходной книге с точно таким же именем. Соответствующие имена, которые будут скопированы, перечислены в листе под названием «Имена» в целевой книге.

Фактические именованные диапазоны находятся в рабочем листе под названием TargetSheet (я дал многим отдельным ячейкам одно имя).

Я знаю, как скопировать один именованный диапазон из рабочей книги в другую, при наборе этого работает:

ThisWorkbook.Sheets ("TargetSheet"). Range ("TagName") = _ Workbooks ( "Источник"). Sheets ( "SourceSheet"). Range ( "TagName").

Однако мне не удается создать цикл, который копирует значения из всех соответствующих именованных диапазонов, даже если я включаю в строку кавычки.

For i = 2 To 8
  For j = 1 To 6
    CurrentName = """" & ThisWorkbook.Sheets("Names").Cells(i, j) & """"
    ThisWorkbook.Sheets("Target").Range(CurrentName) = _
      Workbooks("Source").Sheets("SourceSheet").Range(CurrentName)
  Next j
Next i

Приведенный выше код выдает сообщение об ошибке «Ошибка приложения или объекта», хотя я надеялся, что около 42 ячеек получат обновленные значения.

Ответы [ 2 ]

0 голосов
/ 25 июня 2019

Method 2 Copy the data Sheets("Sheet1").Range("A1:B10").Copy Activate the destination worksheet Sheets("Sheet2").Activate Select the target range Range("E1").Select Paste in the target destination ActiveSheet.Paste

это может помочь вам .. как я уже говорил, я не эксперт по Excel ... но всегда есть начало

0 голосов
/ 25 июня 2019

у вас должна быть переменная, которая возвращает целевую таблицу, которую вы хотите обновить, и затем используете, например: ra.CurrentDb.OpenRecordset("root_table") re.CurrentDb.OpenRecordset("target_table")

, затем обрабатывает весь код, обновите целевую таблицу, выполнив:

re.AddNew re.Update

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...