VBA程序的redim应用

Subtest()Dimr%,i%,s&Dimarr,brr()WithWorksheets(4)r=.Cells(.Rows.Count,7).End(xlUp).Ro... Sub test()
Dim r%, i%, s&
Dim arr, brr()
With Worksheets(4)
r = .Cells(.Rows.Count, 7).End(xlUp).Row
arr = .Range("g1:g" & r)
ReDim brr(1 To UBound(arr), 1 To 1)
For i = r To 1 Step -1
If arr(i, 1) = "理论时间" Then
brr(i, 1) = s
s = 0
Else
s = s + arr(i, 1)
End If
Next
.Range("h1").Resize(UBound(brr), 5) = brr
End With
End Sub
这段代码有几个地方不是很理解, arr = .Range("g1:g" & r) 前面多个点是什么意思?取值吗?
ReDim brr(1 To UBound(arr), 1 To 1) 这个是最不懂的
arr(i, 1) , brr(i, 1) 这两个也不是很懂。刚学求大神帮忙解答下
展开
 我来答
szqaly
推荐于2017-12-15 · TA获得超过1745个赞
知道大有可为答主
回答量:2107
采纳率:77%
帮助的人:1530万
展开全部
With Worksheets(4)
.....
end with
这是一种对象方法引用的简化方式,在该区域内前面有个点的方法实际都是 Worksheets(4) 的方法。为了省事而已。

ReDim brr(1 To UBound(arr), 1 To 1) 定义动态数组长度,这是两维数组。动态数组首先要声明,然后再定义长度。dim brr 或dim brr() 或dim brr() as 类型 ,这三种声明形式都可以用redim。

arr(i, 1) 访问两维数组当然要用两个下标量,你可以看成一张有多行,多列的表,这句可以看成是指向第i 行第1 列的单元。
ZESTRON
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸... 点击进入详情页
本回答由ZESTRON提供
magicbobo
2014-07-06 · TA获得超过489个赞
知道小有建树答主
回答量:300
采纳率:0%
帮助的人:227万
展开全部
arr = .Range("g1:g" & r) 以点开头的去找with就行

这里对应的with是With Worksheets(4)

也就是说Worksheets(4).Range……

ReDim brr(1 To UBound(arr), 1 To 1)从新声明brr是从1开始到arr第一列个数结束、从1开始到1结束的二维数组

程序里面arr获得的是Range("g1:g" & r),那么拽就是一excel里的一个竖列,有几个就是几个呗

arr(i, 1) , brr(i, 1) 这俩有什么不懂的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式