Gå til hovedindhold

Hvordan finder og erstatter jeg tekst i diagramtitler i Excel?

Diagrammer er meget nyttige for os i Excel, og vi giver dem ofte nogle titler til at identificere dem. Men har du prøvet at finde og erstatte tekstværdien i diagramtitler i flere diagrammer? I dag vil jeg tale om, hvordan man finder en bestemt tekst i flere diagramfliser og erstatter dem med andre værdier i Excel.

Find og erstat tekst i diagramtitler i Excel med VBA-kode


pil blå højre boble Find og erstat tekst i diagramtitler i Excel med VBA-kode

Hvis du antager, at du har et regneark, der indeholder diagrammerne som vist på følgende skærmbillede, og du kun vil erstatte teksten januar til februar inden for alle diagramtitlerne. Selvfølgelig kan du ændre dem manuelt én efter én, men det vil være tidskrævende, hvis der er flere diagrammer. Så her kan følgende VBA-kode hjælpe dig med at håndtere denne opgave.< /p>

doc-replace-chart-titles1

1. Aktiver dit regneark, som indeholder de diagrammer, du vil finde og erstatte i deres titler.

2. Hold nede ALT + F11 tasterne, og det åbner Vinduet Microsoft Visual Basic til applikationer.

3. Klik indsatte > Moduler, og indsæt følgende kode i Modul vindue.

VBA-kode: Find og erstat tekst i diagramtitler i aktivt regneark

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. Tryk derefter på F5 tast for at køre denne kode, og en promptboks vil poppe ud for at minde dig om at indtaste din gamle tekst, som du vil erstatte, se skærmbillede:

doc-replace-chart-titles1

5. Og klik derefter på OK knappen, og en anden promptboks dukker op, skal du skrive din nye tekstværdi, som du vil erstatte den gamle, se skærmbillede:

doc-replace-chart-titles1

6. Fortsæt med at klikke OK for at lukke promptboksen, og dine gamle tekster er blevet erstattet af nyhederne på én gang i det aktuelle regneark som følgende skærmbillede vist:

doc-replace-chart-titles1

Bemærk: Hvis du har brug for at finde og erstatte tekstværdien af ​​diagramtitler i alle regnearkene i en projektmappe, skal du anvende følgende VBA-kode: (Proceduren er den samme som ovenstående)

VBA-kode: Find og erstat tekst i diagramtitler i alle regneark

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

Relaterede artikler:

Hvordan finder og erstatter jeg tekst i kommentarer i Excel?

Hvordan finder og erstatter man specifik tekst i flere tekstbokse i Excel?

Hvordan ændres flere hyperlinkstier på én gang i Excel?

Bedste kontorproduktivitetsværktøjer

Populære funktioner: Find, fremhæv eller identificer dubletter   |  Slet tomme rækker   |  Kombiner kolonner eller celler uden at miste data   |   Runde uden formel ...
Super opslag: VLookup med flere kriterier    Multiple Value VLookup  |   VOpslag på tværs af flere ark   |   Fuzzy Lookup ....
Avanceret rulleliste: Opret hurtigt rulleliste   |  Afhængig rulleliste   |  Multivælg rulleliste ....
Column Manager: Tilføj et bestemt antal kolonner  |  Flyt kolonner  |  Skift synlighedsstatus for skjulte kolonner  |  Sammenlign områder og kolonner ...
Fremhævede funktioner: Grid fokus   |  Designvisning   |   Stor Formel Bar    Arbejdsbog & Ark Manager   |  Ressourcebibliotek (Autotekst)   |  Datovælger   |  Kombiner regneark   |  Krypter/Dekrypter celler    Send e-mails efter liste   |  Superfilter   |   Specielt filter (filter fed/kursiv/gennemstreget...) ...
Top 15 værktøjssæt12 tekst Værktøj (tilføje tekst, Fjern tegn, ...)   |   50 + Chart Typer (Gantt kort, ...)   |   40+ Praktisk formler (Beregn alder baseret på fødselsdag, ...)   |   19 Indsættelse Værktøj (Indsæt QR-kode, Indsæt billede fra sti, ...)   |   12 Konvertering Værktøj (Tal til ord, Valutaomregning, ...)   |   7 Flet og del Værktøj (Avancerede kombinere rækker, Opdel celler, ...)   |   ... og mere

Overlad dine Excel-færdigheder med Kutools til Excel, og oplev effektivitet som aldrig før. Kutools til Excel tilbyder over 300 avancerede funktioner for at øge produktiviteten og spare tid.  Klik her for at få den funktion, du har mest brug for...

kte-fane 201905


Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!

 

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