Note: The other languages of the website are Google-translated. Back to English

如何在一系列單元格中加粗所有特定單詞?

doc粗體指定文字1

在Excel中, 查找和替換 函數可以幫助我們找到任何特定的文本,並為整個單元格提供粗體或任何其他格式。 但是,您是否曾經嘗試過僅粗體顯示單元格中的特定文本而不是粗體,如下圖所示:

使用VBA代碼將單元格區域中的所有特定單詞加粗


箭頭藍色右氣泡 使用VBA代碼將單元格區域中的所有特定單詞加粗

以下VBA代碼可以幫助您僅粗體顯示單元格內容中的特定文本,請執行以下操作:

1。 按住 ALT + F11 鍵打開 Microsoft Visual Basic for Applications 窗口。

2。 點擊 插入 > 模塊,然後將以下代碼粘貼到 模塊 窗口。

VBA代碼:單元格區域中的粗體特定文本

Sub FindAndBold()
'Updateby Extendoffice 20160711
    Dim xFind As String
    Dim xCell As Range
    Dim xTxtRg As Range
    Dim xCount As Long
    Dim xLen As Integer
    Dim xStart As Integer
    Dim xRg As Range
    Dim xTxt As String
    On Error Resume Next
    If ActiveWindow.RangeSelection.Count > 1 Then
      xTxt = ActiveWindow.RangeSelection.AddressLocal
    Else
      xTxt = ActiveSheet.UsedRange.AddressLocal
    End If
    Set xRg = Application.InputBox("Please select data range:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    On Error Resume Next
    Set xTxtRg = Application.Intersect(xRg.SpecialCells(xlCellTypeConstants, xlTextValues), xRg)
    If xTxtRg Is Nothing Then
        MsgBox "There are no cells with text"
        Exit Sub
    End If
    xFind = Trim(Application.InputBox("What do you want to BOLD?", "Kutools for Excel", , , , , , 2))
    If xFind = "" Then
        MsgBox "No text was listed", vbInformation, "Kutools for Excel"
        Exit Sub
    End If
    xLen = Len(xFind)
    For Each xCell In xTxtRg
        xStart = InStr(xCell.Value, xFind)
        Do While xStart > 0
            xCell.Characters(xStart, xLen).Font.Bold = True
            xCount = xCount + 1
            xStart = InStr(xStart + xLen, xCell.Value, xFind)
        Loop
    Next
    If xCount > 0 Then
        MsgBox "number of " & CStr(xCount) & " text be bolded!", vbInformation, "Kutools for Excel"
    Else
        MsgBox "Not find the specific text!", vbInformation, "Kutools for Excel"
    End If
End Sub

3。 然後按 F5 鍵運行此代碼,並彈出一個提示框,提醒您選擇要加粗的數據范圍,請參見屏幕截圖:

doc粗體指定文字2

4。 然後點擊 OK,則會彈出另一個框,提醒您僅在單元格中輸入要加粗的特定文本,請參見屏幕截圖:

doc粗體指定文字3

5。 輸入文字後,請點擊 OK 按鈕,並且您指定的所有文本在所選範圍內均以粗體顯示,請參見屏幕截圖:

doc粗體指定文字4


最佳辦公效率工具

Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。
kte選項卡201905

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

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部
按評論排序
留言 (9)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
這個 VBA 是否可以修改為加粗多個文本,例如“KTE”、“KTO”和“KTW”?
網站主持人對此評論進行了最小化
你好,埃里克,

可能是以下 VBA 代碼可以幫助您將多個特定單元格加粗,請應用以下代碼。
子 FindAndBold()
暗淡我只要
將 xFind 作為字符串變暗
將 xCell 調暗為範圍
將 xTxtRg 調暗為範圍
調暗 xCount 一樣長
將 xLen 調暗為整數
將 xStart 調暗為整數
將 xRg 調暗為範圍,xRg 查找為範圍
將 xTxt 調暗為字符串
將 xArr() 調暗為字符串
在錯誤恢復下一頁
如果 ActiveWindow.RangeSelection.Count > 1 那麼
xTxt = ActiveWindow.RangeSelection.AddressLocal
其他
xTxt = ActiveSheet.UsedRange.AddressLocal
如果結束
Set xRg = Application.InputBox("請選擇數據范圍:", "Kutools for Excel", xTxt, , , , , 8)
如果 xRg 什麼都不是,則退出 Sub
在錯誤恢復下一頁
設置 xTxtRg = Application.Intersect(xRg.SpecialCells(xlCellTypeConstants, xlTextValues), xRg)
如果 xTxtRg 什麼都沒有,那麼
MsgBox "沒有包含文本的單元格"
退出小組
如果結束
Set xRgFind = Application.InputBox("選擇要加粗的文本單元格", "Kutools for Excel", , , , , , 8)
如果 xRgFind 什麼都不是,那麼
MsgBox "未列出任何文本", vbInformation, "Kutools for Excel"
退出小組
如果結束
重新調整 xArr(xRgFind.Count - 1)
對於 I = 0 到 (xRgFind.Count - 1)
xArr(I) = xRgFind(I + 1)
下一頁
對於 xTxtRg 中的每個 xCell
對於 I = 0 到 UBound(xArr)
xFind = 修剪(xArr(I))
xStart = InStr(xCell.Value, xFind)
xLen = Len(xFind)
當 xStart > 0 時執行
xCell.Characters(xStart, xLen).Font.Bold = True
xCount = xCount + 1
xStart = InStr(xStart + xLen, xCell.Value, xFind)
循環
下一頁
下一頁
如果 xCount > 0 那麼
MsgBox "數量 " & CStr(xCount) & " 文本加粗!", vbInformation, "Kutools for Excel"
其他
MsgBox "未找到特定文本!", vbInformation, "Kutools for Excel"
如果結束
END SUB

希望對你有幫助,謝謝!
查看附件 (1 / 5)
網站主持人對此評論進行了最小化
如果我想將字符串 G-AD 加粗,如果我的單元格中有 G-AD 和 G-AD-bla-bla-bla,它就不起作用(這個 G-AD 不應該加粗)
網站主持人對此評論進行了最小化
你好skyyang,你能幫我解決一下我的excel嗎?
如果在具有多行的單元格中找到“1º”,請將該單元格行加粗
網站主持人對此評論進行了最小化
您好,它可以搜索多個文本並加粗該文本加上該單元格行。 (我有 1 個有 5 行的單元格,如果找到“1º”,我想加粗該行,如果其餘為“2º”“3º”,“數字 + º”,僅加粗數字。)

其他需求是:
如果找到“1º”加粗該細胞系
網站主持人對此評論進行了最小化
我試圖運行這段代碼,但得到一個錯誤...“編譯錯誤:錯誤的參數或無效的屬性分配”。 下面是錯誤消息的圖像和代碼的斷點。
網站主持人對此評論進行了最小化
你好,雪莉,
我看不到你的截圖,請重新上傳。
感謝您!
網站主持人對此評論進行了最小化
我的第一個彈出窗口正常,但第二個彈出窗口沒有輸入單詞?
網站主持人對此評論進行了最小化
太棒了! 很棒!
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護