在vba中array函数可以生成数组,在平时我们经常用array函数生成数据表的列标题。
比如要往Sheet1工作表的第一行填入列标题,我们可以使用如下的代码
Sub QQ1722187970()
Dim oWK As Worksheet
Set oWK = Excel.Worksheets("Sheet1")
Dim arr
arr = Array("成交时间", "股票代码", "股票名称", "异动类型", "异动信息", "成交价格", "涨跌幅(%)", "换手率", "详细信息")
oWK.Range("a1:i1") = arr
End Sub
但是,当列标题有增减的时候,需要去调整
oWK.Range("a1:i1")
很不方便,这个时候可以使用resize属性结合arr的Ubound来自适应列标题的数量。代码修改为如下:
Sub QQ1722187970()
Dim oWK As Worksheet
Set oWK = Excel.Worksheets("Sheet1")
Dim arr
Dim iCol As Integer
arr = VBA.Array("成交时间", "股票代码", "股票名称", "异动类型", "异动信息", "成交价格", "涨跌幅(%)", "换手率", "详细信息")
iCol = UBound(arr) + 1
oWK.Range("a1").Resize(1, iCol) = arr
End Sub
通过以上的代码,无论列标题如何增减,都可以自适应列数了。


发表评论