Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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 错误1004应用程序定义或对象定义错误_Vba_Excel - Fatal编程技术网

Vba 错误1004应用程序定义或对象定义错误

Vba 错误1004应用程序定义或对象定义错误,vba,excel,Vba,Excel,以下代码中出现1004错误:在set range语句中。你能告诉我我在这里错过了什么吗?因为我不知道 Sub updatechart(Nombre As Variant) Dim cht As Chart Dim rng As Range Dim cmb As ComboBox Dim Fila As Integer Dim ser As Series Dim rng1 As Range Dim rng2 As Range Dim rngdata As Range Dim s As Intege

以下代码中出现1004错误:在set range语句中。你能告诉我我在这里错过了什么吗?因为我不知道

Sub updatechart(Nombre As Variant)
Dim cht As Chart
Dim rng As Range
Dim cmb As ComboBox
Dim Fila As Integer
Dim ser As Series
Dim rng1 As Range
Dim rng2 As Range
Dim rngdata As Range
Dim s As Integer
Worksheets(2).Activate
Set cmb = Sheets(2).ComboBox1
Set cht = ActiveSheet.ChartObjects(1).Chart
Set rngdata = Sheets(1).Range("b6:f370")
semana = cmb.Value
Fila = BuscaPalabra1(semana)

For Each ser In cht.SeriesCollection
    ser.Delete
Next

For s = 3 To rngdata.Columns.Count
    Set ser = cht.SeriesCollection.NewSeries
    Set rng1 = Sheets(1).Range(Cells(Fila, s), Cells(Fila + 7, s))
    Set rng2 = Sheets(1).Range(Cells(Fila, 2), Cells(Fila, 2))

    With ser
        .XValues = rng2
        .Values = rng1
    'cht.SeriesCollection(contador).Select
   ' cht.SetSourceData Source:=Sheets("datos").Range("rng1", "rng2")

    End With

Next

End Sub

默认情况下,从常规代码模块(非工作表代码模块)调用
Range()
Cells()
都将使用ActiveSheet,因此最好使用特定工作表来限定所有这些调用:

With Sheets(1)
    Set rng1 = .Range(.Cells(Fila, s), .Cells(Fila + 7, s))
    Set rng2 = .Cells(Fila, 2)
End with

似乎rng1和rng2的尺寸不同,但是?

工作表(1)
a
工作表
?还是一张
图表
?如果它是一个图表,您将无法从中选择一系列单元格。好的一点@YowE3K-当您想要处理
工作表
对象时,您应该始终使用
工作表
集合。
Sheets
集合包含的不仅仅是工作表。@Mat'sMug-对工作表和工作表集合使用数字索引是我的另一个讨厌-用户很容易将工作表移动到不同的顺序,然后代码就散架了。感谢YowE3K和Mat'sMug的建议,我只是vba的初学者,还在学习。我无法找出错误1004的原因,所以我更改了代码