ไปยังเนื้อหาหลัก

วิธีค้นหาและแทนที่ข้อความในชื่อแผนภูมิใน Excel

แผนภูมิมีประโยชน์มากสำหรับเราใน Excel และเรามักให้ชื่อเรื่องเพื่อระบุชื่อ แต่คุณได้พยายามค้นหาและแทนที่ค่าข้อความในชื่อแผนภูมิภายในหลายแผนภูมิแล้วหรือยัง วันนี้ฉันจะพูดถึงวิธีการค้นหาข้อความเฉพาะในแผนภูมิหลายแผ่นและแทนที่ด้วยค่าอื่นใน Excel

ค้นหาและแทนที่ข้อความในชื่อแผนภูมิใน Excel ด้วยรหัส VBA


ลูกศรสีฟ้าฟองขวา ค้นหาและแทนที่ข้อความในชื่อแผนภูมิใน Excel ด้วยรหัส VBA

สมมติว่าคุณมีแผ่นงานซึ่งมีแผนภูมิตามภาพหน้าจอต่อไปนี้และคุณต้องการแทนที่ข้อความในเดือนมกราคมภายในเดือนกุมภาพันธ์ภายในชื่อแผนภูมิทั้งหมดเท่านั้น แน่นอนคุณสามารถเปลี่ยนทีละรายการได้ด้วยตนเอง แต่จะใช้เวลานานหากมีหลายแผนภูมิ ดังนั้นที่นี่รหัส VBA ต่อไปนี้สามารถช่วยคุณจัดการกับงานนี้ได้ </ p>

doc-แทนที่แผนภูมิ-titles1

1. เปิดใช้งานแผ่นงานของคุณซึ่งมีแผนภูมิที่คุณต้องการค้นหาและแทนที่ในชื่อเรื่อง

2. กด ALT + F11 และจะเปิดไฟล์ หน้าต่าง Microsoft Visual Basic for Applications.

3. คลิก สิ่งที่ใส่เข้าไป > โมดูลและวางรหัสต่อไปนี้ในไฟล์ หน้าต่างโมดูล.

รหัส VBA: ค้นหาและแทนที่ข้อความในชื่อแผนภูมิภายในแผ่นงานที่ใช้งานอยู่

Sub ChartLabelReplace()
'Update 20140603
Dim xWs As Worksheet
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
For Each ch In xWs.ChartObjects
    If ch.Chart.HasTitle Then
        ch.Chart.ChartTitle.Text = VBA.Replace(ch.Chart.ChartTitle.Text, xFindStr, xReplace, 1)
    End If
Next
End Sub

4. จากนั้นกด F5 คีย์เพื่อเรียกใช้รหัสนี้และกล่องพร้อมต์จะปรากฏขึ้นเพื่อเตือนให้คุณป้อนข้อความเก่าที่คุณต้องการแทนที่ดูภาพหน้าจอ:

doc-แทนที่แผนภูมิ-titles1

5. จากนั้นคลิก OK และกล่องพร้อมต์อื่นจะปรากฏขึ้นคุณต้องพิมพ์ค่าข้อความใหม่ที่คุณต้องการแทนที่ค่าเก่าดูภาพหน้าจอ:

doc-แทนที่แผนภูมิ-titles1

6. ไปที่การคลิก OK เพื่อปิดกล่องข้อความและข้อความเก่าของคุณจะถูกแทนที่ด้วยข่าวในครั้งเดียวในแผ่นงานปัจจุบันดังภาพหน้าจอต่อไปนี้:

doc-แทนที่แผนภูมิ-titles1

หมายเหตุ: หากคุณต้องการค้นหาและแทนที่ค่าข้อความของชื่อแผนภูมิในแผ่นงานทั้งหมดในสมุดงานคุณควรใช้รหัส VBA ต่อไปนี้: (ขั้นตอนจะเหมือนกับด้านบน)

รหัส VBA: ค้นหาและแทนที่ข้อความในชื่อแผนภูมิภายในแผ่นงานทั้งหมด

Sub ChartLabelReplaceAllWorksheet()
'Update 20140603
Dim xFindStr As String
Dim xReplace As String
xFindStr = Application.InputBox("Find:", xTitleId, "", Type:=2)
xReplace = Application.InputBox("Replace:", xTitleId, "", Type:=2)
For Each sh In Worksheets
    For Each ch In sh.ChartObjects
        If ch.Chart.HasTitle Then
            ch.Chart.ChartTitle.Text = VBA.Replace(ch.Chart.ChartTitle.Text, xFindStr, xReplace, 1)
        End If
    Next
Next
End Sub

บทความที่เกี่ยวข้อง:

วิธีค้นหาและแทนที่ข้อความภายในความคิดเห็นใน Excel

วิธีค้นหาและแทนที่ข้อความเฉพาะในกล่องข้อความหลาย ๆ กล่องของ Excel

วิธีเปลี่ยนเส้นทางการเชื่อมโยงหลายมิติพร้อมกันใน Excel

สุดยอดเครื่องมือเพิ่มผลผลิตในสำนักงาน

🤖 Kutools AI ผู้ช่วย: ปฏิวัติการวิเคราะห์ข้อมูลโดยยึดตาม: การดำเนินการที่ชาญฉลาด   |  สร้างรหัส  |  สร้างสูตรที่กำหนดเอง  |  วิเคราะห์ข้อมูลและสร้างแผนภูมิ  |  เรียกใช้ฟังก์ชัน Kutools...
คุณสมบัติยอดนิยม: ค้นหา เน้น หรือระบุรายการที่ซ้ำกัน   |  ลบแถวว่าง   |  รวมคอลัมน์หรือเซลล์โดยไม่สูญเสียข้อมูล   |   รอบโดยไม่มีสูตร ...
การค้นหาขั้นสูง: VLookup หลายเกณฑ์    VLookup หลายค่า  |   VLookup ข้ามหลายแผ่น   |   การค้นหาที่ไม่ชัดเจน ....
รายการแบบเลื่อนลงขั้นสูง: สร้างรายการแบบหล่นลงอย่างรวดเร็ว   |  รายการแบบหล่นลงขึ้นอยู่กับ   |  เลือกหลายรายการแบบหล่นลง ....
ผู้จัดการคอลัมน์: เพิ่มจำนวนคอลัมน์เฉพาะ  |  ย้ายคอลัมน์  |  สลับสถานะการมองเห็นของคอลัมน์ที่ซ่อนอยู่  |  เปรียบเทียบช่วงและคอลัมน์ ...
คุณสมบัติเด่น: กริดโฟกัส   |  มุมมองการออกแบบ   |   บาร์สูตรใหญ่    สมุดงานและตัวจัดการชีต   |  ห้องสมุดทรัพยากร (ข้อความอัตโนมัติ)   |  เลือกวันที่   |  รวมแผ่นงาน   |  เข้ารหัส/ถอดรหัสเซลล์    ส่งอีเมลตามรายการ   |  ซุปเปอร์ฟิลเตอร์   |   ตัวกรองพิเศษ (กรองตัวหนา/ตัวเอียง/ขีดทับ...) ...
ชุดเครื่องมือ 15 อันดับแรก12 ข้อความ เครื่องมือ (เพิ่มข้อความ, ลบอักขระ, ... )   |   50 + แผนภูมิ ประเภท (แผนภูมิ Gantt, ... )   |   40+ ใช้งานได้จริง สูตร (คำนวณอายุตามวันเกิด, ... )   |   19 การแทรก เครื่องมือ (ใส่ QR Code, แทรกรูปภาพจากเส้นทาง, ... )   |   12 การแปลง เครื่องมือ (ตัวเลขเป็นคำ, การแปลงสกุลเงิน, ... )   |   7 ผสานและแยก เครื่องมือ (แถวรวมขั้นสูง, แยกเซลล์, ... )   |   ... และอื่น ๆ

เพิ่มพูนทักษะ Excel ของคุณด้วย Kutools สำหรับ Excel และสัมผัสประสิทธิภาพอย่างที่ไม่เคยมีมาก่อน Kutools สำหรับ Excel เสนอคุณสมบัติขั้นสูงมากกว่า 300 รายการเพื่อเพิ่มประสิทธิภาพและประหยัดเวลา  คลิกที่นี่เพื่อรับคุณสมบัติที่คุณต้องการมากที่สุด...

รายละเอียด


แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!

 

Comments (6)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Just want to say thanks for this. Saved me hours of time.
This comment was minimized by the moderator on the site
I want to do this for text in the legend and axis labels as well. What's the VBA name for the Legend? I tried to edit the module by replacing "ChartTitle" with "Legend" "LegendEntry" "ChartLegend" none work.
This comment was minimized by the moderator on the site
Some of my chart titles contain multiple font sizes. When I run the macro above, it converts all of the fonts to the same size and I have to go back through and manually re-size them. Is there a way to modify the VBA code so that it maintains the original font sizes? (I'm still a VBA newb, so any help would be appreciated!)
This comment was minimized by the moderator on the site
Thank you!!! It helped me so much!!!
This comment was minimized by the moderator on the site
This one works for me, because otherwise the variables are not declared : Sub ChartLabelReplace() 'Update 20141017 Dim xFindStr As String Dim xReplace As String Dim ws As Worksheet Dim ch As ChartObject xFindStr = InputBox("Find:") xReplace = InputBox("Replace:") For Each ws In Worksheets For Each ch In ws.ChartObjects If ch.Chart.HasTitle Then ch.Chart.ChartTitle.Text = VBA.Replace(ch.Chart.ChartTitle.Text, xFindStr, xReplace, 1) End If Next Next End Sub
This comment was minimized by the moderator on the site
How does one change the VBA macro to only apply the change to selected charts (and not all the charts on the worksheet)?
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations