如果您正在製作新文件:

如果您正在製作新文件:

我正在處理一個用早期版本的 Excel 創建的電子表格(我認為是 2003 年),它使得廣泛的使用顏色編碼進行組織。不幸的是,它是使用舊版本的配色方案構建的,基本上沒有一個顏色與2010年主題中的顏色相匹配(除了純白色和純黑色)。因此,每次我想要使某些內容符合先前存在的顏色方案時,我要么必須選擇自訂顏色並手動選擇它,要么必須從現有單元格複製格式並貼上到目標單元格(即很煩人,因為它也會複製邊框等內容)

我找到了頁面佈局/主題/顏色設置,但似乎我所能做的就是將可選顏色更改為其預設之一,或者創建一個全新的調色板 - 而且我只能選擇其中的幾種顏色調色板,不是全套。它透過製作您選擇的顏色的較淺或較深版本來創建其餘部分。另外,當且僅當它們與先前方案中使用的顏色完全匹配時,執行這些操作中的任何一個都會更改電子表格中已使用的顏色。這意味著過去以相似色調著色以表示它們之間的關係的事物現在以不同的顏色著色,有些保留在舊方案中,有些則自動更改為新方案。它基本上破壞了整個系統。

我想要的是能夠添加我從舊文件中使用的特定顏色,以便它們出現在顏色選擇器中,而我不必去搜尋它們。舊版的 Excel 具有此功能 - 有一堆可自訂的方塊,您可以使用它們製作任何您想要的顏色,並且它們將與主題一起保存。我想你甚至可以添加更多的方塊,我忘了。 (不再安裝舊版本。)他們是否刪除了此功能以支援他們的“主題”?還是它隱藏在某個地方?我對這個配色方案功能一點興趣也沒有。我只想使用我想使用的任何顏色(特別是與本文檔匹配的顏色),而不必擔心它們是否與某些任意預設調色板匹配。我真的不想使用新的方案設定來重新著色整個工作表,這樣我就可以在這裡保持一定程度的一致性。

答案1

嗯,恐怕你運氣不好。

在 Excel 2003 中,有一個調色板,其中包含 40 種供工作表使用的可自訂顏色和 16 種供圖表使用的附加顏色。預設調色板設定可以隨文件進行自訂和更改,圖表顏色可以在工作表單元格中使用,反之亦然。

在此輸入影像描述

從 Office 2007 開始,這項原則被「主題」顏色所取代,「主題」顏色由兩種文字和六種強調色以及可供選擇的不同強度組成。所有 Office 應用程式的主題都是一致的。在主題之間切換非常容易,已使用主題顏色格式化的項目會在主題切換時變更。

如果主題色不超過 6 種,那麼使用您最喜歡的顏色選擇來建立新主題也很容易。

始終可以偏離主題顏色並從 127 種標準顏色和多種灰色陰影的調色板中選擇自訂顏色,或透過使用 RGB 或 HSL 值定義自訂顏色。不幸的是,沒有簡單的方法可以將此類自訂選擇添加到標準調色板中。

什麼是極為然而,困難的是使用兩種以上的文字和 6 種強調色來定義自訂調色板,即與 Excel 2007 版本之前提供的 56 種顏色類似的任何顏色。

您是否知道 Excel 也有樣式,就像 Word 一樣? Excel 樣式可以包括字體、字體大小、數字格式、文字顏色和填滿顏色。您可以利用 Excel 樣式功能並使用您想要的儲存格顏色和其他格式建立不同的樣式。

另一種方法(雖然不容易且需要一些工作)是建立一個新工作表,使用兩個8 列x 7 行的網格,並手動將每個單元格的顏色設定為原始Excel 2003 檔案的RGB值。使用其中一個網格作為填滿顏色,並使用其中一個網格作為文字顏色。然後,您可以選擇具有所需顏色的單元格,將其複製並將其格式貼上到目標單元格中。

或者,將每個不同的儲存格格式複製並貼上到新工作表上的一種樣式指南表中,並僅使用它來複製和貼上格式。

不過,最終,您將希望將您的思維轉移到主題原則上。自 Office 2007 以來,56 種顏色已從使用者介面中消失。

如果您開始按照這些思路設計新的電子表格,從長遠來看,您的生活將會更加輕鬆。

答案2

您可以嘗試使用(或調整)這個約翰·沃肯巴赫 (John Walkenbach) 發布的電子表格。此技術將在功能區上建立一個按鈕,並為您提供 Excel 2003 顏色的調色板。

在此輸入影像描述

  1. 下載範例工作簿顏色選擇器.xls
  2. 嘗試標記為的按鈕按一下此處以變更所選儲存格的背景顏色

    J-Walk 的顏色選擇器

  3. 將文件保存在某處。
  4. 右鍵單擊功能區上的任意位置並選擇自訂功能區
  5. 來自從以下位置選擇命令下拉選擇Macros然後選擇...GetAColor2下面(在螢幕截圖中突出顯示為黃色)。

    在此輸入影像描述

  6. 在右側面板中,按一下然後選擇新集團。右鍵單擊新組(自訂)出現的選項並將其重新命名2003 Colours並選擇填滿圖示。

    在此輸入影像描述

  7. 最後點擊添加>>按鈕位於中心。重新命名新選項2003 Colours並再次選擇填滿圖示。現在您應該能夠在功能區中看到它。

    在此輸入影像描述

  8. 您可能更願意將此文件中的 VBA 移至您的個人工作簿中,這樣單擊按鈕時就不會打開外部文件,或者可以使用鍵盤快捷鍵而不是功能區按鈕。但作為一種快速啟動和運行的方法,這種方法效果很好。

筆記 -有關改編 J-Walk 工作簿的更多信息,請點擊此處。

答案3

這個解決方案在 Excel 2013 中對我有用,因此我將其發佈在這裡,供將來偶然發現這個問題並且不喜歡“你不能”答案的任何人使用。


如果您正在製作新文件:

建立一個新模板,Excel 在建立新檔案時將使用該模板。

  1. 開啟空白工作簿
  2. 根據需要自訂它(所有未來的新工作簿都將是此工作簿的副本,因此請花點時間設定所需的字體設定、列寬等)
  3. 對於要儲存的每種自訂顏色,將儲存格設定為該自訂顏色。 (我只是A1反覆使用)
  4. 將所有儲存格設定回“無填滿”
  5. 現在您已經有了想要在「最近的顏色」中顯示的顏色,您可以儲存模板。
  6. 將檔案儲存為“Book.xltx”,位於 Excel 的啟動資料夾中。對我來說,這是
    C:\users\{username}\AppData\Roaming\Microsoft\Excel\XLSTART\
  7. 關閉文件,因為當模板仍然打開時,它不會讓您打開基於模板的新文件
  8. 開啟一個新檔案看看是否有效

當我進行到第 8 步時,我的新文件具有如下所示的顏色選項:

顏色


如果您正在編輯舊文件:

使用 VBA 自動執行上述步驟 3。

  1. 將下面的 VBA 儲存在您的個人宏觀工作簿
  2. 將變數編輯ColorList為您需要的 RGB 值的列表
  3. 如果您的特定設定需要,請編輯睡眠時間
  4. 將巨集新增至功能區

(如果這些連結失效,那麼這些問題很常見,您應該能夠透過您喜歡的網路搜尋引擎找到大量幫助。)

 

'Declare Sleep() API
  #If VBA7 Then ' Excel 2010 or later
    Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal Milliseconds As LongPtr)
  #Else ' Excel 2007 or earlier
    Public Declare Sub Sleep Lib "kernel32" (ByVal Milliseconds As Long)
  #End If

Sub LoadRecentColors()
'PURPOSE: Use A List Of RGB Codes To Load Colors Into Recent Colors Section of Color Palette
'SOURCE: www.TheSpreadsheetGuru.com/the-code-vault

Dim ColorList As Variant
Dim CurrentFill As Variant

'Array List of RGB Color Codes to Add To Recent Colors Section (Max 10)
  ColorList = Array("066,174,093", "184,055,038", "046,062,081", "056,160,133")

'Store ActiveCell's Fill Color (if applicable)
  If ActiveCell.Interior.ColorIndex <> xlNone Then CurrentFill = ActiveCell.Interior.Color

'Optimize Code
  Application.ScreenUpdating = False

'Loop Through List Of RGB Codes And Add To Recent Colors
  For x = LBound(ColorList) To UBound(ColorList)
    ActiveCell.Interior.Color = RGB(Left(ColorList(x), 3), Mid(ColorList(x), 5, 3), Right(ColorList(x), 3))
    DoEvents
    SendKeys "%h"
    Sleep 500 'Pause half-second (units in milliseconds)
    SendKeys "h"
    Sleep 500 'Pause half-second (units in milliseconds)
    SendKeys "m"
    Sleep 500 'Pause half-second (units in milliseconds)
    SendKeys "~"
    Sleep 500 'Pause half-second (units in milliseconds)
    DoEvents
  Next x

'Return ActiveCell Original Fill Color
  If CurrentFill = Empty Then
    ActiveCell.Interior.ColorIndex = xlNone
  Else
    ActiveCell.Interior.Color = currentColor
  End If

End Sub

VBA 的原始來源

相關內容