假设您有一个工作表,其中包含图表,如下面的屏幕快照所示,并且您只想在所有图表标题中用一月到二月替换文本。 当然,您可以一对一地手动更改它们,但是如果有多个图表,这将非常耗时。 因此,在这里,下面的VBA代码可以帮助您处理此任务。
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 键来运行此代码,然后会弹出一个提示框,提醒您输入要替换的旧文本,
5。 然后点击 OK 按钮,然后弹出另一个提示框,您需要输入要替换旧文本的新文本值,
6。 继续点击 OK 关闭提示框,并且在当前工作表中一次将旧文本替换为新闻,
备注:如果需要在工作簿的所有工作表中查找和替换图表标题的文本值,则应应用以下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