2016-05-20 70 views
0

我想製作一個在新工作簿中複製兩個工作表的宏。 但新創建的工作簿中的主題顏色不同。在新工作簿中複製Excel主題顏色

Sub Export_File() 
Dim Wb3 As Workbook 
Dim strSaveName As String 

strSaveName = Worksheets("Communication").Range("a2").Value 
Set Wb3 = ThisWorkbook 

'copy sheets to new workbook 
Sheets(Array("Auswertung", "Communication")).Copy 
ActiveWorkbook.SaveAs strSaveName 

Workbooks(Wb3).Colors = Workbooks(strSaveName).Colors 

End Sub 

此行不爲我工作:

Workbooks(Wb4).Colors = Workbooks(strSaveName).Colors 

我認爲這是與套裝WB4 =的ThisWorkbook需要幫助...

問候

enter image description here

回答

0

The Worksheet.Copy只在該值,但是如果設置了腳本的單元格範圍由一個片複製到另一個,可以使用PasteSpecial同時複製值和格式 - 例如從this post

Worksheets(1).Cells(i, 3).Copy 
Worksheets(2).Cells(a, 15).PasteSpecial Paste:=xlPasteFormats 
Worksheets(2).Cells(a, 15).PasteSpecial Paste:=xlPasteValues 
+1

感謝您的回覆。但是,這不會複製工作簿的調色板/主題顏色。此代碼與我的效果相同。 – Bluesector

1

這似乎爲我工作,複製工作簿主題:

' copy the colors and themes 
    ' 
    resultWorkbook.Colors = sourceWorkbook.Colors 
    'Theme is not the same as colors 
    Dim sourceTheme As Microsoft.Office.Core.ThemeColorScheme = sourceWorkbook.Theme.ThemeColorScheme 
    Dim resultTheme As Microsoft.Office.Core.ThemeColorScheme = resultWorkbook.Theme.ThemeColorScheme 

    For i = 1 To sourceTheme.Count ' there are 12 theme colors: https://msdn.microsoft.com/en-us/library/aa432704(v=office.12).aspx 
     'Debug.WriteLine(String.Format("{0, -2} ~ {1}", i, sourceTheme.Colors(i).RGB)) 
     resultTheme.Colors(i).RGB = sourceTheme.Colors(i).RGB 
    Next i 
相關問題