有時,我們可能會批量修改SERIES公式,但是對于SERIES公式來說,沒有內置的“查找和替換”功能。Jon Peltier大師編寫了一段程序,可以實現這樣的功能,代碼如下:
Sub ChangeSeriesFormula_ActiveChart()
‘如果沒有活動圖表
If ActiveChart Is Nothing Then
MsgBox”請選擇圖表后重試.”,vbExclamation, _
“沒有選擇圖表”
Exit Sub
End If
Dim OldString As String
OldString = InputBox(“輸入要被替換的字符串:”,”輸入舊字符串”)
If Len(OldString) > 1 Then
Dim NewString As String
NewString= InputBox(“輸入新字符串來替換掉原字符串 “& “””” _
&OldString & “””:”, “輸入新字符串”)
‘ 遍歷所有系列
Dim srs As Series
For Each srs In ActiveChart.SeriesCollection
Dim NewFormula As String
‘替換SERIES公式中的字符串
NewFormula = WorksheetFunction.Substitute(srs.Formula, _
OldString, NewString)
‘更新SERIES公式
srs.Formula = NewFormula
Next
Else
MsgBox”沒有進行替換操作.”,vbInformation, “沒有輸入”
End If
End Sub
如下圖1所示,需要將圖表系列中的C替換成D,運行ChangeSeriesFormula_ActiveChart過程,按照提示輸入原字符串和新字符串,即可完成替換,并且圖表相應更新。
圖1
代碼的圖片版如下: