2011-10-14 204 views
1

我將TintAndShadePatternTintAndShade添加到Excel 2007 vba宏。一位同事在Excel 2003中試用了這些命令,發現這些命令在那裏不起作用。Excel 2003中的TintAndShade和PatternTintAndShade

我該如何將以下代碼轉換爲可在Excel 2003中使用的代碼?

With Selection.Interior 
    .Pattern = xlSolid 
    .PatternColorIndex = xlAutomatic 
    .Color = 5296274 
    .TintAndShade = 0 
    .PatternTintAndShade = 0 
End With 

哪裏需要轉換的線路有:

.TintAndShade = 0 
    .PatternTintAndShade = 0 

注:我用這個改變單元格屬性

回答

1

TintandShade只適用於Excel 2003中的形狀。單元格卡住標準難看的顏色。儘管如此,你可以使你的代碼有條件的基於版本。

With Selection.Interior 
    .Pattern = xlSolid 
    .PatternColorIndex = xlAutomatic 
    .Color = 5296274 

    If Application.Version >= 12 then 
    .TintAndShade = 0 
    .PatternTintAndShade = 0 
    End If 

    End With 
+0

那麼12 = excel 2007?謝謝! – Wikis

+1

12 = Excel 2007,14 = Excel 2010和11 = Excel 2003.我不知道13發生了什麼事? – TheFuzzyGiggler

+1

迷信干預? – Wikis

0

.PatternTintAndShade是在2007年版本中添加,所以根本就沒有在2003年

.TintAndShade可並不適用於2003年的範圍(僅適用於形狀)

也就是說,設置這些爲0否定她們效果,所以除非有什麼你不告訴我們你可能根本不需要使用它們。

編輯

雖然記錄可能是有用的,它通常會產生比需要你的目的更多的代碼,設置格式等尤其是當它可以產生不同的版本不同的代碼。所以用它作爲指導,而不是福音。

例如,在範圍設置填充顏色(使用工具欄漆)

Excel 2010中

Sub Macro1() 
    With Selection.Interior 
     .Pattern = xlSolid 
     .PatternColorIndex = xlAutomatic 
     .Color = 65535 
     .TintAndShade = 0 
     .PatternTintAndShade = 0 
    End With 
End Sub 

Excel 2003中(運行在2010這個宏產生相同的結果在2003年)

Sub Macro1() 
    With Selection.Interior 
     .ColorIndex = 6 
     .Pattern = xlSolid 
    End With 
End Sub 
+0

檢查代碼,我還在另一個地方使用了另一個值。但是我從錄製宏中獲得了這些代碼。 – Wikis