2009-11-09 78 views
1
创建表格样式

我使用下面的函数来创建一个TableStyle:错误而在Excel

Public Function CreateTableStyle() 
ActiveWorkbook.Unprotect 

Dim objTS As TableStyle 
On Error Resume Next 
Set objTS = ActiveWorkbook.TableStyles("MyTableStyle") 
On Error GoTo err_CreateTableStyle 
If Not objTS Is Nothing Then 
    Exit Function 
End If 

Set objTS = ActiveWorkbook.TableStyles.Add("MyTableStyle") 
With ActiveWorkbook.TableStyles("MyTableStyle") 
    .ShowAsAvailablePivotTableStyle = True 
    .ShowAsAvailableTableStyle = False 
End With 
With ActiveWorkbook.TableStyles("MyTableStyle").TableStyleElements(_ 
    xlHeaderRow).Font 
    .FontStyle = "Bold" 
    .TintAndShade = 0 
    .ThemeColor = xlThemeColorDark1 
End With 
With ActiveWorkbook.TableStyles("MyTableStyle").TableStyleElements(_ 
    xlHeaderRow).Interior 
    .ThemeColor = xlThemeColorLight2 
    .TintAndShade = -0.249946592608417 
End With 
With ActiveWorkbook.TableStyles("MyTableStyle").TableStyleElements(_ 
    xlTotalRow).Font 
    .FontStyle = "Bold" 
    .TintAndShade = 0 
    .ThemeColor = xlThemeColorDark1 
End With 
With ActiveWorkbook.TableStyles("MyTableStyle").TableStyleElements(_ 
    xlTotalRow).Interior 
    .ThemeColor = xlThemeColorLight2 
    .TintAndShade = -0.249946592608417 
End With 
ActiveWorkbook.TableStyles("MyTableStyle").TableStyleElements(_ 
    xlSubtotalRow1).Font.FontStyle = "Bold" 
With ActiveWorkbook.TableStyles("MyTableStyle").TableStyleElements(_ 
    xlSubtotalRow1).Interior 
    .Color = 16764828 
    .TintAndShade = 0 
End With 
ActiveWorkbook.TableStyles("MyTableStyle").TableStyleElements(_ 
    xlSubtotalRow2).Font.FontStyle = "Bold" 
With ActiveWorkbook.TableStyles("MyTableStyle").TableStyleElements(_ 
    xlSubtotalRow2).Interior 
    .Color = 16777164 
    .TintAndShade = 0 
End With 

ActiveWorkbook.Protect 

Exit Function 

err_CreateTableStyle: 
    Call Common.ErrRaise(Erl, "Common", "CreateTableStyle", "CreateTableStyle") 

End Function 

在下面的一行:

With ActiveWorkbook.TableStyles("MyTableStyle").TableStyleElements(_ xlHeaderRow).Font .FontStyle = "Bold"

我得到一个错误:

运行时错误'1004' 无法设置Font类的FontStyle属性。

有人可以找出问题吗?我无法弄清为什么它不让我设置财产。

+0

的代码工作。我不确定为什么它不适用于该特定行。你可以删除错误处理程序(错误恢复下一个和错误goto ....)并查看它失败的地方? – shahkalpesh 2009-11-09 06:35:41

+0

在相同的语句中失败。我正试图通过XLA运行此代码。它通过XLA工作吗?它通过一个宏而不是XLA来工作。 – 2009-11-09 08:20:23

+0

如何设置Bold属性呢?那样有用吗? – shahkalpesh 2009-11-09 08:39:51

回答

0

XLA的行为可能不同一段时间....它们被加载/时将启动Excel,打开任何表(即使是空的)前执行,因此,一个XLA asuming本打开的书会失败

如果这代码旨在设置一些“默认格式”...

...我宁愿设置格式并将整个工作表保存为表或工作簿模板(XLT),然后使用该模板创建新文件,

...或者 - 再次在模板中存储上述代码,并从事件宏(如Workbook_NewSheet()或Workbook_Open())调用它,