我经常发现自己会复制和粘贴工作表,以便对不同的数据集显示相同的分析结果。这包括图表。必须为每个数据系列、每个数据集的误差线等“选择数据”,这很烦人。
一旦我为一个工作表创建了图表,我的选择就是:
- 将图表复制到另一个工作表。对每个部分使用“选择数据”
- 复制整个工作表,然后替换数据
我更希望能够看到图表背后的 XML(或其他)表示,并能够对工作表名称/列名称进行查找和替换。Excel 界面非常不方便,并且不容易反复更改图表(尤其是误差线)。
是否有一些我可以编辑的图形等对象的文本表示?(我不想费力提取 xlsx 文件并在文本编辑器中编辑 XML 文件)。
答案1
将数据从...插入到 Excel 2007
打开 CSV 文件
打开向导第一部分
打开向导第二部分
打开向导第三部分
插入单元格选择
从 CSV 文件刷新数据选项
在 Far Manager 中查看 CSV 文件
设置图表类型
编辑 CSV 文件
刷新 Excel 数据
编辑 CSV 文件
刷新 Excel 数据
安全数据设置
全部。如果需要,请插入旋转表格和图形图片)。
答案2
如何编辑级数公式?我有一个教程改变系列公式——改进例程,但要点如下:
该级数公式如下:
=SERIES(Sheet1!$B$1,Sheet1!$A$2:$A$11,Sheet1!$B$2:$B$11,1)
这些论点意味着:
=SERIES([Series Name],[X Values],[Y Values],[Plot Order])
您可以使用以下方式在 VBA 中访问这些公式
ActiveChart.SeriesCollection(1).Formula
您可以使用以下命令将公式的一部分从“OldString”更改为“NewString”:
ActiveChart.SeriesCollection(1).Formula = WorksheetFunction.Substitute( _
ActiveChart.SeriesCollection(1).Formula, OldString, NewString)
您可以将其包装成一个很好的 VBA 过程,该过程要求用户将旧字符串替换为新字符串,然后对活动图表中的所有系列进行更改:
Sub ChangeSeriesFormula()
''' Just do active chart
If ActiveChart Is Nothing Then
'' There is no active chart
MsgBox "Please select a chart and try again.", vbExclamation, _
"No Chart Selected"
Exit Sub
End If
Dim OldString As String, NewString As String, strTemp As String
Dim mySrs As Series
OldString = InputBox("Enter the string to be replaced:", "Enter old string")
If Len(OldString) > 1 Then
NewString = InputBox("Enter the string to replace " & """" _
& OldString & """:", "Enter new string")
'' Loop through all series
For Each mySrs In ActiveChart.SeriesCollection
strTemp = WorksheetFunction.Substitute(mySrs.Formula, _
OldString, NewString)
mySrs.Formula = strTemp
Next
Else
MsgBox "Nothing to be replaced.", vbInformation, "Nothing Entered"
End If
End Sub
我上面引用的教程有更多关于如何编辑系列公式的例子。