2012-05-01 4 views
12

Это глупо, но я застрял на некоторое время в этом простом утверждении:VBA Диапазон от строки

Dim range1 as Range 
    Dim mysheet as String 
    Dim myrange as String 

    mysheet = "Sheet1" 
    range = "A1:A10" 

range1 = Worksheets(mysheet).Range(myrange) 

Я тестируется все решения, которые я нашел в Интернете, как например this, this и this, но ничего.

Все время он дает мне ошибки: 1004 «Ошибка определяется приложением» или «объектная переменная или не установлена».

Я попытался следующие:

range1 = ThisWorkbook.Worksheets(mysheet).Range(myrange) 

range1 = ActiveWorkbook.Worksheets(mysheet).Range(myrange) 

range1 = Sheets(mysheet).Range(myrange) (and the combinations above) 

range1 = Worksheets(mysheet).Range(Cells(1,1), Cells(1,10)) (and the combinations with This/Active workbook) 

и

with This/ActiveWorkbook 
range1 = .Worksheets(mysheet).Range(myrange) 
end with 

Никто не работал.

Это действительно глупо, но я застрял на некоторое время теперь: s

Может кто-нибудь мне помочь?

Действительно заранее.

С наилучшими пожеланиями,

ответ

25

Вы должны использовать набор для назначения объектов:

Set range1 = Worksheets(mysheet).Range(myrange) 
+0

Действительно спасибо ... Я знал, что это было на самом деле просто, но я был слеп. –

+1

+1 Ницца :-) –