声明一组变量作为另一个变量的函数

时间:2018-07-17 13:17:43

标签: vba excel-vba variables

我试图根据数量变化的列条目分配字符串(根据日期可能为15-40个条目),然后通过将字符串添加到URL的固定开头来打开URL。我的问题是变量的分配。我的代码如下:

'LOOP 1:
    'Table Entries

Dim RowCount As Integer


    Sheets("Table").Select
    Sheets("Table").Range("A2").Select
    Do While True
        ActiveCell.Offset(1, 0).Select
        If IsEmpty(ActiveCell.Value) Then
            RowCount = ActiveCell.Row
            Exit Do
        End If
    Loop

RowCount = RowCount - 2

'LOOP 2:
    'Assign IDs and URLs

Dim ID(1 To RowCount) As Variant
Dim URL(1 To RowCount) As String
Dim i1 As Integer

    For i1 = 1 To RowCount
        ID(i1) = Sheets("Table").Range("A" + CStr(i + 1)).Value
        URL(i1) = "--Redacted--" + CStr(URL(i1))
    Next i1

问题在于声明ID和URL变量是RowCount的函数。我确定还有另一种方法来声明这些,但是我的经验不足。

谢谢。

2 个答案:

答案 0 :(得分:7)

如您所见:

Sub ThisFails()
    RowCount = 9
    Dim URL(1 To RowCount) As String
End Sub

不起作用,但是:

Sub ThisWorks()
    Dim URL() As String
    RowCount = 9
    ReDim URL(1 To RowCount)
End Sub

可以工作

答案 1 :(得分:0)

查看您要完成的事情; [[-编辑-] +字符串]的数组 您可以尝试:

Sub Try()
Dim URL() As String
With Sheets("Table")
    URL = Split("--Redacted--" & Join(Application.Transpose(.Range(.Cells(2, 1), .Cells(1, 1).End(xlDown))), "|--Redacted--"), "|")
End With

End Sub

无需循环或为RowCount查找空单元格