簡體   English   中英

在其他工作表中激活范圍

[英]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中的任何內容。 請參閱此以獲取更多說明:

如何避免在Excel VBA宏中使用選擇

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM