Копирование данных из одного листа в другую книгу, но с некоторыми ошибками. - PullRequest
0 голосов
/ 05 июля 2019

Мой код, который я копирую с одного листа на другой, не работает.

Я пытался возиться с диапазонами, но, похоже, это не сработало.

Workbooks("Copy of Sales Report_063019(002).xlsx").Worksheets("EBR 
 RANKING").Range("A1:O134").Copy _
 Workbooks("Copy of 
 ProspectAndSalesReportAll_123118_FINAL(2).xlsm").Worksheets("EBR 
 Ranking").Range("A1")

Множество ошибок индекса за пределами диапазона.

Ответы [ 2 ]

0 голосов
/ 05 июля 2019

1) у вас есть открытые оба листа?Если нет, вы должны открыть оба файла, или, если вы не хотите этого делать, вам нужно будет указать полный путь к файлу, чтобы VBA знала, что нужно найти файлы.

2) вы упомянули о копированиилист, но то, что делает ваш код, копирует содержимое листа на другой.Имеется ли в другом листе рейтинг EBR?Если нет, вот фрагмент для добавления.

    With Workbooks("Copy of ProspectAndSalesReportAll_123118_FINAL(2).xlsm")
        .Sheets.Add(After:=.Sheets(.Sheets.Count)).Name = "EBR Ranking"
    End With
0 голосов
/ 05 июля 2019

Это не полный ответ, но вы, как правило, избегаете ошибок такого рода, если разбиваете каждый объект на промежуточную переменную. Вы вообще ничего не получаете, «укладывая» все ссылки в одну длинную строку. Фактически, вы заставляете Excel (пере) оценивать его каждый раз. Бонус в том, что ваш код становится намного понятнее.

Как пример:

Dim firstSalesWB As Workbook
Dim firstSalesWS As Worksheet
Dim firstSalesData As Range
Set firstSalesWB = Application.Workbooks("Copy of Sales Report_063019(002).xlsx")
Set firstSalesWS = firstSalesWB.Sheets("EBR Ranking")
Set firstSalesData = firstSalesWS.Range("A1:O134")

Dim allSalesWB As Workbook
Dim allSalesWS As Worksheet
Dim allSalesData As Range
Set allSalesWB = Application.Workbooks("Copy of ProspectAndSalesReportAll_123118_FINAL(2).xlsm")
Set allSalesWS = allSalesWB.Sheets("EBR Ranking")
Set allSalesData = allSalesWS.Range("A1")

firstSalesData.Copy Destination:=allSalesData

Теперь, когда вы получаете такие ошибки, гораздо проще отследить, в чем проблема - в вашем случае это, вероятно, либо отсутствующее, либо неправильно написанное имя книги или имя листа, как упомянул @BigBen.

...