[英]Range activation in a different worksheet
我想知道以下代碼是否有替代方法:
Dim Arr() as Variant
Arr = Range("A1:I511")
指的是指定的工作表。 我嘗試了以下
Dim Arr() as Variant
Arr = Range(Sheets("list").Cells(1, 1), Sheets("list").Cells(511, 9))
還有另一種寫方法嗎? 我想要這樣的東西:
Dim Arr() as Variant
Arr = worksheets("list").range(Cells(1, 1),Cells(511, 9))
還有許多其他方式可以編寫此代碼,也許最簡單:
arr = Sheets("list").Range("A1:I511").Value
但是這是您嘗試的問題:
Cells(_row_, _column_)
返回一個范圍對象,該對象的結果為其默認屬性( .Value
屬性。因此,當您執行以下操作:
Range(Sheets("list").Cells(1, 1), Sheets("list").Cells(511,9))
您實際上正在執行此操作, 否則將引發錯誤, 除非不太可能的情況是這些單元格包含可解釋為范圍地址的字符串值,例如“ $ A $ 1”或“ $ J $ 5:$ Q $ 459”等。
Range(Sheets("list").Cells(1, 1).Value, _ Sheets("list").Cells(511,9).Value)
嘗試以下方法:
Range(Sheets("list").Cells(1, 1).Address, _ Sheets("list").Cells(511,9).Address).Value
要么:
With Sheets("list")
arr = Range(.Cells(1, 1).Address .Cells(511,9).Address).Value
End With
注意:您必須先激活另一張圖紙才能激活另一張圖紙上的范圍。 我建議您不要同時這樣做。 有99%的時間沒有理由“激活” VBA中的任何內容。 請參閱此以獲取更多說明:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.