Excelmacros:初学者 – 从一个工作簿到另一个工作簿的粘贴格式

我不知道Excelmacros,所以我确定这是一个荒谬的问题。 我有一个Excel工作簿,这里有7个工作表(K:\ Common \ HSRE \ Hospice Payment Reform \ Plotzke \ Ad Hoc Tasks \ OY1 \ Monitoring for MACs \ Results \ Results_2012 – Template – Master.xlsx)

我想从这些工作表中的每一个(每个工作表上的格式不同)的格式复制到本工作手册(K:\ Common \ HSRE \ Hospice Payment Reform \ Plotzke \ Ad Hoc Tasks \ OY1 \ Monitoring for MACs \ Results \ Results_2012 – Template.xlsx)。 此工作簿中的工作表名称与第一个工作簿中的名称相同。

基于我在网上看到的,我认为我可以做一些像(至less在第一个工作表)

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”:下标超出范围

有任何想法吗?

如果工作簿打开,则不需要提供整个path

尝试这个

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

一样的。

这不指定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

我不知道你得到错误引用的原因。

您可以先打开主工作簿,然后将格式复制到打开的模板

假设模板工作簿已打开,并且此macros在模板工作簿中,则可以使用以下内容

 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