How to find and replace specific text in text boxes?
Find and Replace is a useful tool for us to find and replace cell contents or formulas quickly and conveniently in a worksheet. But now, I have multiple text boxes in my worksheet, and I want to find the specific text and replace it with other value in these text boxes only. Do you have any good ways to deal with this problem?
- Reuse Anything: Add the most used or complex formulas, charts and anything else to your favorites, and quickly reuse them in the future.
- More than 20 text features: Extract Number from Text String; Extract or Remove Part of Texts; Convert Numbers and Currencies to English Words.
- Merge Tools: Multiple Workbooks and Sheets into One; Merge Multiple Cells/Rows/Columns Without Losing Data; Merge Duplicate Rows and Sum.
- Split Tools: Split Data into Multiple Sheets Based on Value; One Workbook to Multiple Excel, PDF or CSV Files; One Column to Multiple Columns.
- Paste Skipping Hidden/Filtered Rows; Count And Sum by Background Color; Send Personalized Emails to Multiple Recipients in Bulk.
- Super Filter: Create advanced filter schemes and apply to any sheets; Sort by week, day, frequency and more; Filter by bold, formulas, comment...
- More than 300 powerful features; Works with Office 2007-2019 and 365; Supports all languages; Easy deploying in your enterprise or organization.
You can find and replace the text that you need manually one by one, but if there are multiple text boxes, this will be boring and tired. So the following VBA code can help you finish it at once.
1. Activate your worksheet, and hold down the ALT + F11 keys to open the Microsoft Visual Basic for Applications window.
2. Click Insert > Module, and paste the following code in the Module Window.
VBA code: Find and replace specific text in text boxes of current worksheet
Sub TextBoxReplace() 'Updateby20140603 Dim xWs As Worksheet Dim shp As Shape Dim xFindStr As String Dim xReplace As String xFindStr = Application.InputBox("Find:", xTitleId, "", Type:=2) xReplace = Application.InputBox("Replace:", xTitleId, "", Type:=2) Set xWs = Application.ActiveSheet On Error Resume Next For Each shp In xWs.Shapes xValue = shp.TextFrame.Characters.Text shp.TextFrame.Characters.Text = VBA.Replace(xValue, xFindStr, xReplace, 1) Next End Sub
3. Then press F5 key to run this code, and a prompt box will pop out to remind you entering your old text that you want to replace. See screenshot:
4. Go on clicking OK, and in this prompt box, type the new text value that you want, see screenshot:
5. And then click OK button, the old values have been replaced with the new values that you entered in the current worksheet. See screenshots: