excel中的vba的数组赋值问题

Subaaa()Dim人物签()AsVariantDima人物签=Sheets("人物总表").Range(Cells(2,1),Cells(7,5)).Valuea=人... Sub aaa()

Dim 人物签() As Variant
Dim a

人物签 = Sheets("人物总表").Range(Cells(2, 1), Cells(7, 5)).Value

a = 人物签(1, 5)
Debug.Print a

End Sub

以上内容运行,如果是"人物总表"页选中激活状态,就可以正常运行,如果是其他也激活,就会报错
1004,应用程序或对象定义错误。

初学者,求各位神相助
展开
 我来答
hxyang7903
2014-12-15 · TA获得超过267个赞
知道小有建树答主
回答量:123
采纳率:0%
帮助的人:50万
展开全部
cells当前选中的range的成员,所以如果要用cells,一定要先用选中表,在选中一个RANGE,如果未指定range,则用整个表的单元格做父对象
所以像题目中这样的用法,如果sheet指定的是错误的,则range的结果是错误的。
可以在前面加一句
sheets("人物总表").select
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
苦乐一辈子
2014-12-15 · TA获得超过1534个赞
知道大有可为答主
回答量:1410
采纳率:64%
帮助的人:1036万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lmze2000
推荐于2016-03-23 · TA获得超过1408个赞
知道小有建树答主
回答量:823
采纳率:44%
帮助的人:239万
展开全部
问题出在你的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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式