EXCEL用VBA将单元格数值存入数组

知道A列有10个数可以用下面存入数组,如果不知道A列有几个数怎么办?Subtest()Dima(9)AsInteger,iAsIntegerFori=1To10a(i-1... 知道A列有10个数可以用下面存入数组,如果不知道A列有几个数怎么办?

Sub test()
Dim a(9) As Integer, i As Integer
For i = 1 To 10
a(i - 1) = Range("A" & i)
Next
End Sub
展开
 我来答
小白聊电子科技
高粉答主

2020-04-12 · 专注电子数码问题解答
小白聊电子科技
采纳数:775 获赞数:75433

向TA提问 私信TA
展开全部

1、首先打开一个Excel的文件,在表格中输入简单的表格,比如学生身高表格,如下图所示。

2、接着,在表格中输入一维数组的说明文字,鼠标左键单击【开发工具】菜单标签,在VBA控件下拉菜单中,并选择按钮控件,如下图所示。

3、 然后,在表格中绘制出按钮控件,并修改控件名称,比如使用一维数组的名称,如下图所示。

4、接着,选择按钮控件,并鼠标左键单击【查看代码】按钮,如下图所示。

5、然后,在代码窗口中输入VBA语句,比如输入定义一维数组的语句,并给一维数组赋值,如下图所示。

6、接着,在代码窗口中,输入一维数组给单元格赋值的VBA语句,如下图所示。

7、最后,在设计窗口上,鼠标左键单击按钮,可以看到表格中的,通过VBA程序的一维数组,并输出到身高的单元格中,显示出数据了,如下图所示。

世界喜欢不一样
推荐于2017-09-12 · TA获得超过2372个赞
知道大有可为答主
回答量:1546
采纳率:50%
帮助的人:630万
展开全部

使用Redim动态数组即可。

Sub test1()
    Dim a() As Integer, iRow As Long, i As Integer
    iRow = Cells(Rows.Count, 1).End(xlUp).Row
    ReDim a(iRow - 1)
    For i = 1 To UBound(a)
        a(i - 1) = Range("A" & i)
    Next
End Sub
追问
还是你最明白
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ssp008
2019-11-08
知道答主
回答量:5
采纳率:0%
帮助的人:4468
展开全部
使用worksheetfunction直接实现。
Dim arr
arr = WorksheetFunction.Transpose(Range("a2:b14"))
‘arr就是一个二维数组arr(1 to 2, 1 to 13)
msgbox arr(2,1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hlhcygs
2015-05-20 · TA获得超过3174个赞
知道大有可为答主
回答量:2987
采纳率:66%
帮助的人:1922万
展开全部
FOR I=1 TO RANGE("a65536").END(XLUP).ROW-x
x表示A列起始数据单元格的行号-1
更多追问追答
追问
写完整吧,不懂
追答

假如数据从A3开始,

Sub test()
Dim a()
a() = Range("A3:A" & Range("A65536").End(xlUp).Row)
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鱼木混猪哟
高粉答主

推荐于2017-10-07 · 专注Office,尤其Excel和VBA
鱼木混猪哟
采纳数:6078 获赞数:33690

向TA提问 私信TA
展开全部
代码及注释如下:
Sub main()
x = Range("A65536").End(3).Row'x的值为A列中最后一个非空单元格行号
ReDim a(x)'重新定义数组a,使之上限为x
For i = 1 To x‘i从A1依次往下循环,直到最后一行
a(i - 1) = Range("A" & i)'将A列单元格值依次存放于数组中
Next
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式