我通過下面的代碼將一系列單元格存盤在一個陣列中:
MyArr()=sheet1.range(x1:y1)
X 和 y 變化。我對陣列沒有問題,它運行良好。
通過回圈我讀取陣列值,如果讓我們說一個值是“樣本”,那么我需要在固定行和“樣本”列中找到一個單元格的值。
我找不到存盤范圍的列號或行號。
當我輸入 MyArr (1,n) 時,它會回傳值,但是當我嘗試MyArr(1,n). column 來獲取這個值列號它不像一個物件并且給出錯誤。n 是相關陣列索引號。
當我在陣列中存盤一個范圍時,如何獲得這個存盤范圍值的行號或列號?
uj5u.com熱心網友回復:
當您這樣做時,MyArr() = MyRange您正在撰寫一個Let陳述句,它將運算式中的值分配給一個變數。MyRange訪問其默認成員,即MyRange.Value. 由于它是一個多單元格范圍,因此它創建了一個 Variant 值陣列,這些值被保存到MyArr.
這是一個很長的說法,您不是將范圍放入陣列中,而是將范圍的值放入陣列中。因此,一旦您擁有 中的值MyArr,元素就沒有像這樣的成員,Range.Row或者Range.Column因為它們不是物件,而只是值。
如果要將 Range 保存為物件,則可以執行
Dim MyRange As Range
Set MyRange = Sheet1.Range("x1:y1")
如果您需要訪問這些值,MyRange您可以執行任一操作MyRange.Cells(1,1).Value或MyRange.Value()(1,1)與您在MyArr.
但由于它保存在 Range 物件中,因此您可以訪問 range 物件的所有物件成員。例如,您可以找到行和列 - MyRange.Cells(1,1).Row和MyRange.Cells(1,1).Column。或者您可以在同一行中找到其他值,例如MyRange.Cells(1,1).EntireRow.Cells(5).
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/391128.html
