Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Excel无法识别图表的类型_Vba_Excel_Charts - Fatal编程技术网

Vba Excel无法识别图表的类型

Vba Excel无法识别图表的类型,vba,excel,charts,Vba,Excel,Charts,我有以下代码将一张图纸上的所有图表复制到另一张图纸上 问题是,尽管我的图表有横轴的数字(时间序列)数据,但Excel将其视为分类数据。我可以看出这是因为它试图在轴上显示每个日期(尽管我的代码将其改为每月一次),并且一旦选择“格式轴”,我只看到分类数据的字段(我缺少Maxim、Major Unit等字段) 这是我正在使用的代码,为了获得荣誉,我在某个论坛上处理了大部分代码,但我想不起来如果我再次找到它,我会在哪里发布一个链接: Sub CopyCharts(Source As Worksheet,

我有以下代码将一张图纸上的所有图表复制到另一张图纸上

问题是,尽管我的图表有横轴的数字(时间序列)数据,但Excel将其视为分类数据。我可以看出这是因为它试图在轴上显示每个日期(尽管我的代码将其改为每月一次),并且一旦选择“格式轴”,我只看到分类数据的字段(我缺少Maxim、Major Unit等字段)

这是我正在使用的代码,为了获得荣誉,我在某个论坛上处理了大部分代码,但我想不起来如果我再次找到它,我会在哪里发布一个链接:

Sub CopyCharts(Source As Worksheet, Target As Worksheet)
    Dim SChart         As ChartObject
    Dim NChart         As ChartObject
    Dim NewSheetNChart As ChartObjects
    Dim ChartTop       As Single
    Dim ChartLeft      As Single
    Dim ChartIndex     As Integer
    Dim ChartSeries    As Series
    Dim XAxis          As Axis

    For Each SChart In Source.ChartObjects
        'Save chart's current position
        ChartTop = SChart.Top
        ChartLeft = SChart.Left

        'Copy and paste the chart
        SChart.Copy
        Target.Paste

        'Find the chart in a new spreadsheet
        ChartIndex = ChartIndex + 1
        Set NewSheetNChart = Target.ChartObjects
        Set NChart = NewSheetNChart(ChartIndex)

        'Align the charts
        NChart.Top = ChartTop
        NChart.Left = ChartLeft

        'Delink sereis from source
        For Each ChartSeries In NChart.Chart.SeriesCollection
            ChartSeries.XValues = ChartSeries.XValues
            ChartSeries.Values = ChartSeries.Values
            ChartSeries.Name = ChartSeries.Name
        Next ChartSeries

        'Set the X axis to correct values
        Set XAxis = NChart.Chart.Axes(xlCategory, xlPrimary)
        With XAxis
            .CategoryType = xlTimeScale
            .BaseUnit = xlMonths
            .MajorUnit = 1
        End With
    Next SChart
End Sub

您在x轴中引用的单元格中的数据是如何格式化的?它只是一个格式为字符串的数值对不起,格式为日期而不是字符串它们是什么类型的图表?如果你想像那样格式化X轴,你可能需要散点图。实际上,它们是平线图,在一个轴上绘制两个系列。在X轴上引用的单元格中,数据的格式如何?它只是一个格式为字符串的数值。请问格式为日期而不是字符串。它们是什么类型的图表?如果你想像那样格式化X轴,你可能需要散点图。实际上,它们是平线图,在一个轴上绘制两个系列