是否可以在 Excel 中编辑对象的源表示?

是否可以在 Excel 中编辑对象的源表示?

我经常发现自己会复制和粘贴工作表,以便对不同的数据集显示相同的分析结果。这包括图表。必须为每个数据系列、每个数据集的误差线等“选择数据”,这很烦人。

一旦我为一个工作表创建了图表,我的选择就是:

  • 将图表复制到另一个工作表。对每个部分使用“选择数据”
  • 复制整个工作表,然后替换数据

我更希望能够看到图表背后的 XML(或其他)表示,并能够对工作表名称/列名称进行查找和替换。Excel 界面非常不方便,并且不容易反复更改图表(尤其是误差线)。

是否有一些我可以编辑的图形等对象的文本表示?(我不想费力提取 xlsx 文件并在文本编辑器中编辑 XML 文件)。

答案1

将数据从...插入到 Excel 2007

链接数据至 Excel

打开 CSV 文件

打开 CSV 文件

打开向导第一部分

打开向导第一部分

打开向导第二部分

打开向导第二部分

打开向导第三部分

打开向导第三部分

插入单元格选择

插入单元格选择

从 CSV 文件刷新数据选项

从 CSV 文件刷新数据选项

在 Far Manager 中查看 CSV 文件

在 Far Manager 中查看 CSV 文件

设置图表类型

设置图表类型

编辑 CSV 文件

编辑 CSV 文件

刷新 Excel 数据

刷新 Excel 数据

编辑 CSV 文件

编辑 CSV 文件

刷新 Excel 数据

刷新 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

我上面引用的教程有更多关于如何编辑系列公式的例子。

相关内容