加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【VBA】数组赋值、resize调整区域及下载数据

(2012-04-26 15:12:09)
标签:

杂谈

分类: VBA
Dim aa()
aa = Array("1", "2", "3")
Sheets("test").Range("a6").Resize(2, 3).value = aa

1.数组赋值:Array函数

Array(arglist)

所需的 arglist 参数是一个用逗号隔开的值表,这些值用于给 Variant 所包含的数组的各元素赋值。如果不提供参数,则创建一个长度为 0 的数组。


2.resize函数,返回调整后的区域

 

表达式.Resize(RowSize, ColumnSize)

整指定区域的大小。返回 Range 对象,该对象代表调整后的区域。


举例:

 i = Sheet5.Range("C10000").End(xlUp).Row() + 1

    r = Sheet5.Range("A10000").End(xlUp).Row()

    If r >= i Then

        Sheet5.Range("C" & 3).Resize(1, Sheet5.Range("DZ2").End(xlToLeft).Column() - 2).Copy

        Sheet5.Range("C" & i).Resize(r - i + 1, Sheet5.Range("DZ2").End(xlToLeft).Column() - 2).PasteSpecial xlPasteFormulas

    End If

    

    ' Get the market data in [market]

    r = Application.WorksheetFunction.Match(Sheet1.Range("ReportDate"), Sheet7.Range("A:A"), False)

    

    i = Sheet7.Range("B10000").End(xlUp).Row()

    

    If r > i Then

        Sheet7.Range("B" & (i + 1)).Resize(r - i, Sheet7.Range("AZ2").End(xlToLeft).Column() - 1).FormulaR1C1 = "=BDH(R2C,""px last"",  RC1,  RC1, ""days=A"",""Fill=P"")"

    End If

    

    If r > i Then

        Sheet7.Range("BA" & Application.WorksheetFunction.Match(Sheet1.Evaluate("LastYearDate"), _

            Sheet7.Range("A:A"), False)).Resize(1, 10).Copy

        Sheet7.Range("BA" & (i + 1)).Resize(r - i, 10).PasteSpecial xlPasteFormulasAndNumberFormats

    End If


/////////////////////

1.match 函数取行数 ,列固定时,取到的是行数。

=MATCH(C6,'R2'!F:F,0) 


2. match函数 取列数,行固定时,取到的是列数

=MATCH(D5,'R2'!3:3,0)

2.Index(行,列)取到数值


3. resize 应用前 先复制公式,然后在粘贴 AC3单元格中是任意公式。

Sheet5.Range("AC3").Copy

Sheet5.Range("AC3").Resize(Sheet5.Range("A10000").End(xlUp).Row(), 1).PasteSpecial xlPasteFormulas

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有