2012-05-01 119 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,thisthis,但沒有。

它一直給我帶來錯誤: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 

都沒有奏效。

這是一個非常愚蠢的事情,但我一直在堅持,現在一會兒:■

誰能幫助我?

真的在此先感謝。

最好的問候,

回答

25

您需要使用設置來分配對象:

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

真的感謝...我知道這是真的很簡單,但我是個盲人。 –

+1

+1不錯的:-) –