arrays - 将二维变体数组的一维提取到字符串

标签 arrays vba excel

类似于:Convert Variant Array to String - 但那里接受的答案对我来说不起作用。

我的代码:

SQLStr = "SELECT lineID FROM alldata where asdf = '" & asdf & "'"
Set rs = New ADODB.Recordset
rs.Open SQLStr, conn, adOpenStatic

Dim arr
Dim arrString
rs.MoveFirst
arr = rs.GetRows
arrString = Join(arr, ", ")

语句 arr = rs.GetRows 执行后,它在我的控制台中具有以下值:

enter image description here

我试图将这两个值连接起来,用逗号空格分隔成一个字符串,所以最终结果是:

arrString = "25616, 99607"

但是,当我运行 Join 行时,我收到了一个 Invalid procedure call or argument 错误。我做错了什么?

最佳答案

虽然我确信有更优雅的方法来完成您的任务,但我确实编写了一些看起来运行成功的代码。

Option Explicit

Private Sub TestArray()

        Dim arr(0, 1) As Variant 'Mimic the structure of your array
        Dim arrString As String
        Dim sDelimiter As String
        Dim j As Long

        'Mimic the structure of your array
        arr(0, 0) = "25616"
        arr(0, 1) = "99607"

        sDelimiter = ", " 'Set your delimiter

        'Loop through the inner array
        For j = 0 To UBound(arr, 2)
                'Concatenate the elements
                arrString = arrString & sDelimiter & arr(0, j)
        Next j

        'Remove the leading delimiter / cleanup
        arrString = Replace(arrString, sDelimiter, "", 1, 1, vbTextCompare)

        MsgBox arrString

End Sub

有趣的代码是从sDelimiter = ", "往下的。

我不知道如何将数组Transpose 转换为一维数组(从二维数组的数组),所以我决定遍历内部数组并连接值。

串联会在列表的前面产生一个额外的定界符,因此有一行将那个定界符替换为空。

关于arrays - 将二维变体数组的一维提取到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32278265/

相关文章:

c++ - C++中数组的默认值是多少?

Java 等同于 C++ 中动态分配的数组

arrays - 使用 Excel VBA 评估一维数组中可变长度字符串的最大长度

VBA - 如何获取工作表代号索引

java - 计算数据矩阵中的空单元格 xlsx

C 代码中的 Java 数组

c - 当我扫描一个数组时,它会更改另一个数组吗?

excel - 将图像和文本添加到旧的 Excel 游戏

excel - 如何在 Excel 中将不同的日期格式转换或更改为一种格式

excel - 如何在Excel中找到给定数字的最大序列?