2016-09-27 5 views
0

Я пытаюсь сделать этот код работает:Range (String) Excel VBA

Dim myrange As String 

For i = LBound(lOffsets) To UBound(lOffsets) 
    myrange = "R" & CStr(2 * i + 4) & ":S" & CStr(2 * i + 5) 
    Set rangeT = Worksheets("ChartBuilder").Range(myrange) 

    Charts("overview").SeriesCollection.Add _ 
    Source:=rangeT 
Next i 

Но я всегда получаю: Ошибка выполнения '9': Подстрочный из диапазона. Он швы, что объект Range() не хочет принимать строку Myrange String в качестве входа. Код работает отлично, хотя, если я использую Range («R4: S5»), например ...

+0

Вы уверены, что имя листа '' ChartBuilder'' написано правильно и что активная книга содержит этот лист. –

+0

100% Конечно, он работает, когда я использую Range («R4: S5»), например –

+0

Почему вы используете 'CStr()'? Мне кажется, что это не значит, что это не сработает, но это также не обязательно. Кроме того, как следует @ScottCraner, вы должны квалифицировать свою книгу. – Kyle

ответ

0
Dim myrange As String 


For i = LBound(lOffsets) To UBound(lOffsets) 
    myrange = "R" & CStr(2 * i + 4) & ":R" & CStr(2 * i + 5) & "," & "S" & CStr(2 * i + 4) & ":S" & CStr(2 * i + 5) 
    Set rangeT = Worksheets("ChartBuilder").Range(myrange) 

    ActiveSheet.ChartObjects("overview").Chart.SeriesCollection.Add _ 
    Source:=rangeT 
Next i 

он работает именно так.

Смежные вопросы