excel中的vba的数组赋值问题

2025-03-13 18:28:04
推荐回答(3个)
回答1:

cells当前选中的range的成员,所以如果要用cells,一定要先用选中表,在选中一个RANGE,如果未指定range,则用整个表的单元格做父对象
所以像题目中这样的用法,如果sheet指定的是错误的,则range的结果是错误的。
可以在前面加一句
sheets("人物总表").select

回答2:

Sub aaa()
Dim 人物签() As Variant
    Dim a
   人物签 = Sheets("人物总表").Range(Sheets("人物总表").Cells(2, 1), Sheets("人物总表").Cells(7, 5)).Value
   a = 人物签(1, 5)
    Debug.Print a
End Sub

回答3:

问题出在你的Range(Cells(2, 1), Cells(7, 5))cells里面,当你不在人物总表的时候,cells(,2,1)就是你其它表里的值了。
这样修改就正常了。

Sub aaa()
Dim 人物签() As Variant
Dim a
人物签 = Sheets("人物总表").Range(Sheets("人物总表").Cells(2, 1), Sheets("人物总表").Cells(7, 5)).Value
a = 人物签(1, 5)
Debug.Print a
End Sub