使用Cells方法在VBA中创建图表-应用程序或对象定义的错误

树人

我试图在Excel 2010中使用VBA创建图表。我试图从同一工作簿中的另一个工作表中选择数据。但是,数据是水平的(必须保持这种状态),因此我需要使用Cells()函数为图表选择数据。

但是,它似乎不起作用,我也无法真正找到原因。在使用Cells()函数定义范围的任何行上,我都会不断收到错误“应用程序定义的错误或对象定义的错误”。但是,如果使用Cells()引用单个单元格,则可以正常工作。

在这种情况下可以不使用Range(Cells(x,y),Cells(z,w))吗?

以下是相关代码:

BinNumber = 2048
Worksheets("Graph One").Activate
Range("A1").Select

'Setting the range the chart will cover
Set rngChart = ActiveSheet.Range("H2:U26")
'Dimensioning the chart and choosing chart type
Set co = ActiveSheet.Shapes.AddChart(xlXYScatter, rngChart.Cells(1).Left, rngChart.Cells(1).Top, rngChart.Width, rngChart.Height)
Set cht = co.Chart
Set sc = cht.SeriesCollection

'Remove any default series
Do While sc.Count > 0
    sc(1).Delete
Loop

'Setting chart data

'Graphing Data
With cht.SeriesCollection.NewSeries
    .Name = Worksheets("Transposed Data").Cells(3, 1)
    .XValues = Worksheets("Transposed Data").Range(Cells(2, 5), Cells(2, BinNumber + 4))
    .Values = Worksheets("Transposed Data").Range(Cells(3, 5), Cells(3, BinNumber + 4))
    .MarkerSize = 4
    .MarkerStyle = xlMarkerStyleCircle

End With

'Setting chart labels
With cht
    .HasTitle = True
    .ChartTitle.Characters.Text = "Counts per energy level"
    .Axes(xlCategory, xlPrimary).HasTitle = True
    .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Energy (keV)"
    .Axes(xlValue, xlPrimary).HasTitle = True
    .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Counts"
    .Axes(xlCategory).HasMajorGridlines = True
    .Axes(xlCategory).HasMinorGridlines = True
End With

当它尝试在Graphing Data标头下设置x和y值时,代码停止。

只是为了挑选出来,我将在下面再次列出。

'Graphing Data
With cht.SeriesCollection.NewSeries
    .Name = Worksheets("Transposed Data").Cells(3, 1)
    .XValues = Worksheets("Transposed Data").Range(Cells(2, 5), Cells(2, BinNumber + 4))
    .Values = Worksheets("Transposed Data").Range(Cells(3, 5), Cells(3, BinNumber + 4))
    .MarkerSize = 4
    .MarkerStyle = xlMarkerStyleCircle

x值的数据在E2到BZX2范围内,y值的数据在E3到BZX3范围内。单元格A3仅具有图表标题。

戴维·泽门斯

但是,如果使用Cells()引用单个单元格,则可以正常工作。

这是不完全正确的。

问题在于,除非完全合格,否则Cells(2, 5)始终引用活动的工作表。因此,在这一行中,该Cells方法符合明确的工作表引用,并且不会发生任何错误。您可能会看到这是一个“单个单元格”,但是这里的区别是它是完全合格的

.Name = Worksheets("Transposed Data").Cells(3, 1)

除非“转置数据”工作表处于活动状态不建议使用)或完全限定范围,否则此行将失败

.XValues = Worksheets("Transposed Data").Range(Cells(2, 5), Cells(2, BinNumber + 4))

这等效于:

.XValues = Worksheets("Transposed Data").Range(ActiveSheet.Cells(2, 5), ActiveSheet.Cells(2, BinNumber + 4))

当我们这样说时,它变得更容易出错了:)

这是您的代码,进行了稍微的重组。我将为With工作表本身使用一个块,并创建一个变量来表示该系列:

Dim srs as Series
Set srs = cht.SeriesCollection.NewSeries

With Worksheets("Transposed Data")
    srs.Name = .Cells(3, 1)
    srs.XValues = .Range(.Cells(2, 5), .Cells(2, BinNumber + 4))
    srs.Values = .Range(.Cells(3, 5), .Cells(3, BinNumber + 4))
    srs.MarkerSize = 4
    srs.MarkerStyle = xlMarkerStyleCircle
End With

因此请注意.前面的内容.Range.Cells(...这使这些方法与关联With Worksheets("Transposed Data")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Cells方法在VBA中创建图表-应用程序或对象定义的错误

来自分类Dev

VBA应用程序定义或对象定义的错误

来自分类Dev

CopyPaste中的应用程序定义或对象定义的错误

来自分类Dev

Excel 代码中的应用程序定义或对象定义错误

来自分类Dev

range.formula 中的应用程序或对象定义错误

来自分类Dev

VBA错误:“运行时错误1004:应用程序定义或对象定义的错误”

来自分类Dev

运行时错误'1004':应用程序定义的错误或对象定义的错误VBA

来自分类Dev

范围的VBA运行时错误1004“应用程序定义的错误或对象定义的错误”

来自分类Dev

使用平均值会在VBA中产生应用程序定义的错误或对象定义的错误

来自分类Dev

使用设置但出现错误“应用程序定义的错误或对象定义的错误”

来自分类Dev

运行时错误“1004”:应用程序定义或对象定义的错误 .Cells

来自分类Dev

Excel 2013 VBA:将数组写入工作表“应用程序定义的错误或对象定义的错误”

来自分类Dev

Excel VBA运行时错误1004“应用程序定义或对象定义的错误”

来自分类Dev

VBA-设置类属性时出现“应用程序定义的错误或对象定义的错误”

来自分类Dev

VBA运行时错误1004:应用程序定义或对象定义的错误

来自分类Dev

Excel VBA运行时错误1004“应用程序定义或对象定义的错误”

来自分类Dev

VBA Excel FormulaR1C1“应用程序定义的错误或对象定义的错误”?

来自分类Dev

Excell VBA 运行时错误“1004”:应用程序定义或对象定义错误

来自分类Dev

VBA INDEX MATCH 运行时错误“1004”:应用程序定义或对象定义错误

来自分类Dev

应用程序定义或对象定义的错误在VBA中打印可疑字符串

来自分类Dev

Excel 宏中的运行时错误 1004:应用程序定义或对象定义错误

来自分类Dev

使用 vlookup 时出现错误 1004 应用程序定义或对象定义错误?

来自分类Dev

列中的循环定义导致应用程序定义或对象定义的错误

来自分类Dev

VBA ActiveWorkbook / RefersToLocal-1004应用程序定义或对象定义的错误

来自分类Dev

由于EndRow,Excel VBA应用程序定义或对象定义的错误

来自分类Dev

替换方法在Excel for Mac中生成应用程序定义或对象定义的错误

来自分类Dev

查找并替换excel中的单词。应用程序定义或对象定义的错误

来自分类Dev

在单元格中输入公式会生成应用程序定义或对象定义的错误

来自分类Dev

使用列表验证单元格:应用程序定义或对象定义的错误

Related 相关文章

  1. 1

    使用Cells方法在VBA中创建图表-应用程序或对象定义的错误

  2. 2

    VBA应用程序定义或对象定义的错误

  3. 3

    CopyPaste中的应用程序定义或对象定义的错误

  4. 4

    Excel 代码中的应用程序定义或对象定义错误

  5. 5

    range.formula 中的应用程序或对象定义错误

  6. 6

    VBA错误:“运行时错误1004:应用程序定义或对象定义的错误”

  7. 7

    运行时错误'1004':应用程序定义的错误或对象定义的错误VBA

  8. 8

    范围的VBA运行时错误1004“应用程序定义的错误或对象定义的错误”

  9. 9

    使用平均值会在VBA中产生应用程序定义的错误或对象定义的错误

  10. 10

    使用设置但出现错误“应用程序定义的错误或对象定义的错误”

  11. 11

    运行时错误“1004”:应用程序定义或对象定义的错误 .Cells

  12. 12

    Excel 2013 VBA:将数组写入工作表“应用程序定义的错误或对象定义的错误”

  13. 13

    Excel VBA运行时错误1004“应用程序定义或对象定义的错误”

  14. 14

    VBA-设置类属性时出现“应用程序定义的错误或对象定义的错误”

  15. 15

    VBA运行时错误1004:应用程序定义或对象定义的错误

  16. 16

    Excel VBA运行时错误1004“应用程序定义或对象定义的错误”

  17. 17

    VBA Excel FormulaR1C1“应用程序定义的错误或对象定义的错误”?

  18. 18

    Excell VBA 运行时错误“1004”:应用程序定义或对象定义错误

  19. 19

    VBA INDEX MATCH 运行时错误“1004”:应用程序定义或对象定义错误

  20. 20

    应用程序定义或对象定义的错误在VBA中打印可疑字符串

  21. 21

    Excel 宏中的运行时错误 1004:应用程序定义或对象定义错误

  22. 22

    使用 vlookup 时出现错误 1004 应用程序定义或对象定义错误?

  23. 23

    列中的循环定义导致应用程序定义或对象定义的错误

  24. 24

    VBA ActiveWorkbook / RefersToLocal-1004应用程序定义或对象定义的错误

  25. 25

    由于EndRow,Excel VBA应用程序定义或对象定义的错误

  26. 26

    替换方法在Excel for Mac中生成应用程序定义或对象定义的错误

  27. 27

    查找并替换excel中的单词。应用程序定义或对象定义的错误

  28. 28

    在单元格中输入公式会生成应用程序定义或对象定义的错误

  29. 29

    使用列表验证单元格:应用程序定义或对象定义的错误

热门标签

归档