Скопируйте листы вставки в разные книги (в таблицу) - PullRequest
0 голосов
/ 28 августа 2018

Итак, у меня есть два Workbooks: w1 и w2

В w1 у меня есть 5 Worksheets с именем:

  • france
  • usa
  • germany
  • switzerland
  • spain

Для каждого рабочего листа мне нужно скопировать диапазоны: Range("D2:S17"), Range ("AX2:BM17"), Range("AB2:AQ17") и вставить их в w2, который содержит 5 пустых рабочих листов с такими же именами рабочего листа, что и w1.

Итак, я хочу создать макрос vba, который копирует Range("D2:S17") в w1.worksheets("france") и вставляет его в w2.worksheets("france"), а когда он вставляется, автоматически присваивает ему имена "france_tab1" и ("germany_tab1" в worksheets("germany") и т. Д.). ...)

и преобразование (Range("D2:S17")) при вставке в table(i,j) (для выполнения вычислений после)

1 Ответ

0 голосов
/ 28 августа 2018

Таким образом, вы можете просто проходить по листам для передачи данных и изменять имена с помощью:

Dim nameArray() As Variant
Dim resultArray() As Variant

nameArray = Array("france", "usa", "germany", "switzerland", "spain")

For each name in nameArray
    With w2.Worksheets(name)
        .Range("D2:S17").Value = w1.Worksheets(name).Range("D2:S17").Value
        .Range("AX2:BM17").Value = w1.Worksheets(name).Range("AX2:BM17").Value
        .Range("AB2:AQ17").Value = w1.Worksheets(name).Range("AB2:AQ17").Value
        .Name = .Name & "_tab1"

        resultArray = .Range("D2:S17").Value ' 2D array
        ' do array calculations here
    End With
Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...