Excel VBA限制工作表调色板

时间:2016-04-21 04:51:30

标签: excel vba colors

我目前正致力于组织更好的工作簿。在我的团队中,我们在一个渐进的工作中使用了一个包含许多TABS的工作簿,分为几个阶段。在每个阶段,我们将使用不同的TABS。

我们通常会对工作表TAB进行着色,以指示是否已完成。我想自定义工作表TAB的颜色索引,因此只剩下3种不同的颜色(让我们说绿色,黑色,白色)。

限制调色板非常重要,因此用户不会选择其他颜色,因此可以按颜色(和标准化)进行TAB分析。

我已经研究了这个概念几天(changing color options)。 我找到了我虽然它是解决方案(official Microsoft)但是没有工作(在更改所有颜色后,在工作表中,它显示了正常的调色板)。

是否可以编写颜色TAB的自定义代码?或者如何改变微软"改变标准颜色" ?

非常感谢提前!

1 个答案:

答案 0 :(得分:0)

这是一个解决方法

通过将此代码放在ThisWorkbook代码窗格

中,您可以在退出工作簿之前捕获错误的彩色标签
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim sht As Worksheet

For Each sht In ThisWorkbook.Worksheets
    Select Case sht.Tab.ColorIndex
        Case 1, 2, 4 '(1=Black, 2=White, 4=Green) see https://msdn.microsoft.com/en-us/library/office/ff840443.aspx
            ' ok
        Case Else
            MsgBox "Sheet '" & sht.name & "' has tab not properly coloured" _
                  & vbCrLf & vbCrLf & "Please have its tab coloured with any of the following colors:" _
                  & vbCrLf & vbTab & "- Green" _
                  & vbCrLf & vbTab & "- Black" _
                  & vbCrLf & vbTab & "- White", vbCritical
            Cancel = True
    End Select
Next sht

End Sub

这将强制用户正确地为事件处理程序的所有选项卡着色,让他最终关闭工作簿!