小编Rat*_*fia的帖子

Excel VBA脚本可以动态地将系列添加到图表中

我正在尝试动态地将多个系列添加到折线图中.我事先不知道有多少系列,所以它需要是动态的.我提出但不起作用的是以下内容:

工作表ActiveSheet(或Sheets("Data"))具有从C14到Cend的行包含来自E14的XValues和Columns:Eend直到R14:Rend其中"end"标记由C列确定的最后一行数据.系列名称存储在第9行.对于所有系列,XValues都是相同的.

我的大问题是,我无法找到一种方法将所有数据列作为系列动态添加到我的图表中以及相应的名称.我不是VBA的专家所以请善待.我已经阅读了各种来源并尝试了许多脚本,似乎都没有.对象目录有点帮助,但我的问题仍然存在.

Sub MakeChart()
Dim LastColumn As Long
Dim LastRow As Long
Dim i As Integer
Dim u As Integer
Dim NameRng As String
Dim CountsRng As Range
Dim xRng As Range

    LastColumn = ActiveSheet.Cells(8, Columns.Count).End(xlToLeft).Column
    ColumnCount = LastColumn - 4
    LastRow = ActiveSheet.Range("C" & ActiveSheet.Rows.Count).End(xlUp).Row
'   Debug.Print ("Last Column: " & LastColumn & " Count: " & ColumnCount & " LastRow: " & LastRow)

    Charts.Add
    With ActiveChart
        .ChartType = xlLineMarkers
        .HasTitle = True
        .ChartTitle.Text = "Test"
    End With …
Run Code Online (Sandbox Code Playgroud)

excel charts vba dynamically-generated

8
推荐指数
2
解决办法
9万
查看次数

将MATCH()函数与未排序的列表一起使用

我在使用MATCH()函数的电子表格公式中遇到问题。

=IFERROR(IF(LENB(Y2461)<> 0, "Complete", IF(LENB(Q2461)<> 0, IF(Q2461-$Y$1<MATCH($Y$1,R2461:X2461),"ON HOLD"), INDEX($R$4:$X$5,1,MATCH($Y$1,R2461:X2461)))),"ON HOLD")
Run Code Online (Sandbox Code Playgroud)

这是具有特定问题的单元格中的公式。我正在使用match查找水平范围的数据,并确定哪一列包含最新更改,但“ Complete”列具有日期和“ ON HOLD”列具有日期的情况除外。单元格Y1包含=TODAY(),因此它将根据当日日期检查每个单元格。单元格被格式化为日期,并作为日期从左到右输入。但是,条目可以从较早的列重新开始,而日期却乱七八糟。

问题是,一次仅出现几次,MATCH()就会返回不是最近的列。据我所知,以及它如何用于此公式的其他实例,是它从右到左读取数组,并在第一个“最高”日期停止。

该错误特别是在一行上发生,而预期结果在工作表上的其他位置多次出现。

我是否MATCH()假设每次都会在某个方向上读取都使用错了吗?代码中是否有其他错误?还是有另一种方式来获得我为其编程的结果?

excel worksheet-function excel-formula array-formulas excel-match

0
推荐指数
1
解决办法
8565
查看次数