2016-04-21 68 views
0

我目前正在研究一个想法来组织更好的工作簿。在我的团队中,我们正在使用带有许多TABS的工作簿,并逐步分阶段进行工作。在每个阶段,我们将使用不同的TABS。Excel VBA限制工作表调色板

我们通常会将工作表的TAB填上以表明它是否已完成。我将自定义工作表选项卡的颜色索引,以便只有3种不同的颜色可用(比如绿色,黑色,白色)。

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

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

任何想法如果可能的代码定制的颜色选项卡?或者微软的“改变标准颜色”真的起作用了吗?

非常感谢提前!

回答

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 

这将迫使用户正确颜色的所有标签的事件处理程序让他最后关闭工作簿!

+0

您好! 是的,我脑海中有一些解决方法......但正如你可能知道的那样,任何不会使它流畅的东西都是对用户而言的一种痛苦......如果我没有找到彻底的解决方案因为“你有选择A或B,这就是全部”,同时,不会给用户造成麻烦或提示窗口。我将无法执行任何操作:SI继续浏览网页!如果我发现任何关闭,我会发布它 – Charlie

+0

@Charlie你找到任何解决方案? – user3598756

+0

我发誓我尝试了一个星期:D没有机会... 目前我正在制作自定义色带...它让我想到了禁用色盘的想法,然后添加一些自定义执行此按钮的按钮..小奖励太麻烦了。并不确定用户是否同意... – Charlie