如何在vba中用array函数给列标题赋值时自适应列数?

在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

通过以上的代码,无论列标题如何增减,都可以自适应列数了。

       

发表评论