·
4 years ago
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.
圖表對我們在Excel中非常有用,我們經常給它們一些標題以供識別。 但是,您是否嘗試過查找並替換多個圖表中圖表標題中的文本值? 今天,我將討論如何在多個圖表圖塊中查找特定文本並將其替換為Excel中的其他值。
假設您有一個工作表,其中包含圖表,如下面的屏幕快照所示,並且您只想在所有圖表標題中用一月到二月替換文本。 當然,您可以一對一地手動更改它們,但是如果有多個圖表,這將非常耗時。 因此,在這裡,下面的VBA代碼可以幫助您處理此任務。</ p>
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
相關文章: