Изменить ссылку на лист Excel с числовой последовательности на имя листа - PullRequest
0 голосов
/ 16 января 2019

У меня относительно простой вопрос. В настоящее время у меня есть код, который работает хорошо, но не эффективно. У меня есть около 500 учетных центров, каждый со своей рабочей книгой, которую я объединил в центральное хранилище (ссылка - Wb2 в коде ниже). Код копирует диапазоны из каждого открытого шаблона (Wb1) в мою консолидацию (Wb2). Пример кода ниже (полный код не требуется).

Option Explicit

Sub CopyData()
    Dim Wb1 As Workbook, wb2 As Workbook, wB As Workbook
    Dim rngToCopy1 As Range
    Dim rngToCopy2 As Range
    Dim rngToCopy3 As Range
    Dim rngToCopy4 As Range
    Dim rngToCopy5 As Range
    Set wb2 = ThisWorkbook
    Application.Calculation = xlManual

    For Each wB In Application.Workbooks
        If Not Left(wB.Name, 18) = "Consolidation Test" Then
            Set Wb1 = wB
            Exit For
        End If
    Next

    'Forecast Data
    With Wb1.Sheets(1)
        Set rngToCopy1 = .Range("A11:O11", .Cells(.Rows.Count, "A").End(xlUp))
    End With
    wb2.Sheets(7).Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(rngToCopy1.Rows.Count, 15).Value = rngToCopy1.Value
    wb2.Sheets(7).Range("P" & Rows.Count).End(xlUp).Offset(1).Resize(rngToCopy1.Rows.Count).Value = Sheets(3).Range("J1").Value

Я попытался просто изменить в качестве примера wB2.Sheets(7) на Wb2.Sheets("Forecast_Data"), а также оригинальное имя в VBE wB2.Sheets("Sheet4"), но я получаю индекс вне ошибки ошибки?

В дополнение к решению, пожалуйста, предоставьте также информацию о том, почему исправление не так просто, связано ли это с тем, как мои переменные объявляются?

1 Ответ

0 голосов
/ 16 января 2019

Я думаю, @GSerg уже дал вам самый важный совет.

Я предполагаю, что вы создали рабочую книгу с именем WB2, но она не содержит ни одного из тех листов, в которые вы хотите записать.

Либо создайте их вручную в своем шаблоне (WB2), либо посмотрите Как добавить именованный лист в конце всех листов Excel , чтобы создать их с помощью VBA.

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