2016-10-17 2 views
-1

Я получаю ошибку 1004 в следующем коде: в инструкции заданного диапазона. Не могли бы вы сообщить мне, чего мне здесь не хватает, потому что я не могу понять.Ошибка 1004 Определенная заявка или объектная ошибка

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 
+1

Является ли 'Sheets (1)' '' Worksheet'? Или это «Диаграмма»? Если это диаграмма, вы не сможете выбрать из нее диапазон ячеек. – YowE3K

+0

Хорошая точка @ YowE3K - вы всегда должны использовать коллекцию Worksheets, когда хотите работать с объектами «Worksheet». Коллекция 'Sheets' содержит больше, чем просто рабочие листы. –

+1

@ Mat'sMug - использование числовых индексов для коллекций листов и рабочих таблиц - еще одна ненависть к домашним животным - для пользователей легко перемещать листы в другом порядке, а затем код просто разбивается на куски. – YowE3K

ответ

1

По умолчанию любой вызов 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 - разные размеры?