2013-11-14 10 views
2

Я не знаю Excel Macros, поэтому я уверен, что это смешной вопрос. У меня есть специальная рабочая тетрадь с 7 рабочими листами (K: \ Common \ HSRE \ Реформа хосписа оплаты \ Plotzke \ Ad Hoc Tasks \ OY1 \ Мониторинг для MAC-адресов \ Результаты \ Результаты_2012 - Шаблон - Master.xlsx)Excel Macro: Beginner - Вставка форматов из одной книги в другую

Я хочу скопируйте форматирование с каждого из этих листов (форматы на каждом рабочем листе различны) в эту книгу (K: \ Common \ HSRE \ Хосписная реформа оплаты \ Plotzke \ Ad Hoc Tasks \ OY1 \ Мониторинг для MAC-адресов \ Результаты \ Results_2012 - Шаблон. XLSX). Названия рабочих листов в этой книге идентичны именам в первой книге.

Основываясь на том, что я видел в Интернете я думал, что я мог бы сделать что-то вроде (по крайней мере, на первом листе)

Sub FormatMAC() 

Workbooks("K:\Common\HSRE\Hospice Payment Reform\Plotzke\Ad Hoc Tasks\OY1\Monitoring for MACs\Results\Results_2012 - Template - Master.xlsx").Worksheets("Provider Level").Range("A1:CZ600").Copy 

Workbooks("K:\Common\HSRE\Hospice Payment Reform\Plotzke\Ad Hoc Tasks\OY1\Monitoring for MACs\Results\Copy of Results_2012 - Template1.xlsx").Worksheets("Provider Level").Range("A1:CZ600").PasteSpecial (xlPasteFormats) 

End Sub 

Похоже, программа становится зацикливаться на первой линии. Я получаю эту ошибку

ошибки времени выполнения `9’ : выхода за пределы

Любые идеи?

ответ

0

Если книга открыта, то вам не нужно предоставлять весь путь

Попробуйте

Workbooks("Results_2012 - Template - Master").Worksheets("Provider Level").Range("A1:CZ600").Copy

То же самое с другой стороны.

+0

Спасибо! Это отлично сработало – user2992957

0

Вы можете открыть мастер книгу, а затем скопировать формат открытого шаблона

Предполагая, что шаблон книга открыта, и этот макрос в шаблон книги, вы можете использовать следующие

Sub FormatMAC() 
Dim mstrWB as Workbook 

Set mstrWB = Workbooks.Open("K:\Common\HSRE\Hospice Payment Reform\Plotzke\" & _ 
    "Ad Hoc Tasks\OY1\Monitoring for MACs\Results\Results_2012 - Template -" & _ 
    " Master.xlsx") 
mstrWB.Worksheets("Provider Level").Range("A1:CZ600").Copy 

Worksheets("Provider Level").Range("A1:CZ600").PasteSpecial (xlPasteFormats) 

mstrWB.Close 

End Sub 
1

Это не указывает Range, и поэтому Format копируется за весь Worksheet.

Sub FormatMAC() 
    Dim wb1 As Workbook, wb2 As Workbook 
    Set wb1 = Workbooks("Results_2012 - Template - Master.xlsx") 
    Set wb2 = Workbooks("Copy of Results_2012 - Template1.xlsm") 
    Dim ws1 As Worksheet, ws2 As Worksheet 
    For Each ws1 In wb1.Worksheets 
     Set ws2 = wb2.Worksheets(ws1.Name) 
     ws1.Cells.Copy 
     ws2.Cells.PasteSpecial (xlPasteFormats) 
    Next ws1 
End Sub 

Один из файлов имеет xlsm расширение, потому что он содержит Sub.

Я не знаю причину, по которой вы получили указанную ошибку.

+1

'Я не знаю, почему вы получили сообщение с котировкой. Вы вывели« Недостаток из диапазона »в приведенной выше ошибке сценария, когда Excel не смог найти книги с определенным именем. :) –

+1

Отлично. Добавление пути не является обязательным, оно обязательно отсутствует. –

Смежные вопросы