跳到主要內容

如何根據Excel中的值更改文本框顏色?

作者:小陽 最後修改時間:2017-12-14

在Excel中,我們可以應用條件格式設置功能來根據單元格值更改背景顏色,但是,在本文中,我將討論如何根據單元格值或文本框中的值更改文本框顏色。

使用VBA代碼根據單元格值更改文本框顏色

使用VBA代碼根據文本框中的值更改文本框顏色


箭頭藍色右氣泡 使用VBA代碼根據單元格值更改文本框顏色

假設,如果A1中的單元格值大於B1中的單元格值,我希望文本框用紅色填充,相反,文本框應該用黃色填充。 請按照以下步驟完成這項工作:

1。 通過單擊插入文本框 開發者 > 插入 > 文本框(ActiveX控件),然後繪製一個文本框,請參見屏幕截圖:

基於值1的doc文本框顏色

2。 然後右鍵單擊文本框,然後選擇 查看代碼 從上下文菜單中打開 Microsoft Visual Basic for Applications 窗口,然後用以下VBA代碼將原始代碼替換為空白模塊:

VBA代碼:根據單元格值更改文本框顏色:

Private Sub TextBox1_Change()
    If ActiveSheet.Range("A1").Value > ActiveSheet.Range("B1").Value Then
        Me.TextBox1.BackColor = vbRed
    Else
        Me.TextBox1.BackColor = vbYellow
    End If
End Sub

基於值2的doc文本框顏色

備註:在上面的代碼中, 文字框1 是您插入的文本框名稱, A1B1 是您要基於其更改文本框顏色的兩個單元格,請根據需要進行更改。

3。 然後保存並關閉代碼窗口,然後退出 設計模式,現在,如果單元格A1大於B1,則在文本框中鍵入文本時,將用紅色填充;如果單元格A1小於B1,則在文本框中輸入值時,將用黃色填充,看截圖:

基於值3的doc文本框顏色


箭頭藍色右氣泡 使用VBA代碼根據文本框中的值更改文本框顏色

如果要基於文本框中的值更改文本框顏色,例如,當文本框中的值介於1和10之間時,文本框的填充顏色為紅色,如果值介於11和20之間,則文本框顏色為綠色,如果為其他值,文本框顏色為黃色。 要處理此任務,請應用下面的VBA代碼。

1。 插入文本框後,右鍵單擊它,然後選擇 查看代碼 從上下文菜單中打開 Microsoft Visual Basic for Applications 窗口,然後用以下VBA代碼將原始代碼替換為空白模塊:

VBA代碼:根據文本框中的值更改文本框顏色:

Private Sub TextBox1_Change()
    On Error Resume Next
    Select Case TextBox1.Value
        Case 1 To 10:
            TextBox1.BackColor = vbRed
        Case 11 To 20:
            TextBox1.BackColor = vbGreen
        Case Else:
            TextBox1.BackColor = vbYellow
    End Select
End Sub

基於值4的doc文本框顏色

備註:在上面的代碼中, 文字框1 是插入的文本框的名稱,您可以將代碼中的值和背景顏色更改為自己的文本框。

2。 然後保存並關閉代碼窗口,然後退出 設計模式,現在,如果在文本框中輸入1到10之間的值,則其背景色將變為紅色,在11到20之間的值將使文本框的背景色變為綠色,其他值將變為黃色,如以下屏幕截圖所示:

基於值5的doc文本框顏色


相關文章:

如何將圖片插入文本框?

如何在文本框中設置默認值?

如何在文本框中僅輸入數字?

如何在文本框中應用拼寫檢查?

最佳辦公生產力工具

🤖 Kutools 人工智慧助手:基於以下內容徹底改變數據分析: 智慧執行   |  生成代碼  |  建立自訂公式  |  分析數據並產生圖表  |  呼叫 Kutools 函數...
熱門特色: 尋找、突出顯示或識別重複項   |  刪除空白行   |  合併列或儲存格而不遺失數據   |   沒有公式的回合 ...
超級查詢: 多條件VLookup    多值VLookup  |   跨多個工作表的 VLookup   |   模糊查詢 ....
高級下拉列表: 快速建立下拉列表   |  依賴下拉列表   |  多選下拉列表 ....
欄目經理: 新增特定數量的列  |  移動列  |  切換隱藏列的可見性狀態  |  比較範圍和列 ...
特色功能: 網格焦點   |  設計圖   |   大方程式酒吧    工作簿和工作表管理器   |  資源庫 (自動文字)   |  日期選擇器   |  合併工作表   |  加密/解密單元格    按清單發送電子郵件   |  超級濾鏡   |   特殊過濾器 (過濾粗體/斜體/刪除線...)...
前 15 個工具集12 文本 工具 (添加文本, 刪除字符,...)   |   50+ 圖表 類型 (甘特圖,...)   |   40+ 實用 公式 (根據生日計算年齡,...)   |   19 插入 工具 (插入二維碼, 從路徑插入圖片,...)   |   12 轉化 工具 (數字到單詞, 貨幣兌換,...)   |   7 合併與拆分 工具 (高級合併行, 分裂細胞,...)   |   ... 和更多

使用 Kutools for Excel 增強您的 Excel 技能,體驗前所未有的效率。 Kutools for Excel 提供了 300 多種進階功能來提高生產力並節省時間。  點擊此處獲取您最需要的功能...

產品描述


Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
Comments (3)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Nevermind, I figured it out. Instead of making the event which triggers the change "Textbox1_GotFocus()", I made it "Worksheet_SelectionChange(ByVal Target As Range)". Now any time the value in one of the cells changes, the textbox color changes automatically.
This comment was minimized by the moderator on the site
For me, when trying to change the textbox color value based on two cell values, the textbox only updates if you type something into the textbox. I need it to update automatically. Guess I'll just have to learn VBA to figure out why.
This comment was minimized by the moderator on the site
Can someone provide an example workbook so I can see this working? I keep trying but to no avail. Thanks
There are no comments posted here yet
Leave your comments
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations