2012-05-01 41 views
12

Đây là loại ngớ ngẩn, nhưng tôi đã bị mắc kẹt trong một thời gian trong bản Tuyên Bố này đơn giản:VBA Phạm vi từ String

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

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

range1 = Worksheets(mysheet).Range(myrange) 

Tôi đã kiểm tra tất cả các giải pháp mà tôi đã tìm thấy trên internet như ví dụ: this, thisthis, nhưng không có gì.

Mọi lúc nó cho tôi lỗi: 1004 "Lỗi do ứng dụng xác định" hoặc "biến đối tượng hoặc chưa được đặt".

Tôi đã thử những điều sau đây:

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 

Không đã làm việc.

Đây là một điều thực sự ngớ ngẩn, nhưng tôi đã bị mắc kẹt trong một thời gian bây giờ là: s

bất cứ ai có thể giúp tôi?

Thực sự cảm ơn trước.

Trân trọng,

Trả lời

25

Bạn cần phải sử dụng Set để gán các đối tượng:

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

Thực sự cảm ơn ... Tôi biết đó là thực sự đơn giản, nhưng tôi bị mù. –

+1

+1 Đẹp nhất :-) –

Các vấn đề liên quan