如何在excel vba中使用for循环连接数组中的string

我目前正在尝试遍历Excel表中的行,并连接列与其他一些硬编码的数据。 现在我正在做这个手动的方式,因为我不知道如何连接使用Excel VBA。

我的代码看起来像这样:

myproperty = Chr(34) & Worksheets(tbValue).Cells(6, 15).Value & Chr(34) & ":" & Chr(34) & Worksheets(tbValue).Cells(rrow, 15).Value & Chr(34) & ";" & _ Chr(34) & Worksheets(tbValue).Cells(6, 16).Value & Chr(34) & ":" & Chr(34) & Worksheets(tbValue).Cells(rrow, 16).Value & Chr(34) & ";" & _ Chr(34) & Worksheets(tbValue).Cells(6, 17).Value & Chr(34) & ":" & Chr(34) & Worksheets(tbValue).Cells(rrow, 17).Value & Chr(34) & ";" & _ Chr(34) & Worksheets(tbValue).Cells(6, 18).Value & Chr(34) & ":" & Chr(34) & Worksheets(tbValue).Cells(rrow, 18).Value & Chr(34) & ";" & _ Chr(34) & Worksheets(tbValue).Cells(6, 19).Value & Chr(34) & ":" & Chr(34) & Worksheets(tbValue).Cells(rrow, 19).Value & Chr(34) & ";" & _ Chr(34) & Worksheets(tbValue).Cells(6, 20).Value & Chr(34) & ":" & Chr(34) & Worksheets(tbValue).Cells(rrow, 20).Value & Chr(34) & ";" & _ Chr(34) & Worksheets(tbValue).Cells(6, 21).Value & Chr(34) & ":" & Chr(34) & Worksheets(tbValue).Cells(rrow, 21).Value & Chr(34) & ";" & _ Chr(34) & Worksheets(tbValue).Cells(6, 22).Value & Chr(34) & ":" & Chr(34) & Worksheets(tbValue).Cells(rrow, 22).Value & Chr(34) & ";" & _ Chr(34) & Worksheets(tbValue).Cells(6, 23).Value & Chr(34) & ":" & Chr(34) & Worksheets(tbValue).Cells(rrow, 23).Value & Chr(34) & ";" & _ Chr(34) & Worksheets(tbValue).Cells(6, 24).Value & Chr(34) & ":" & Chr(34) & Worksheets(tbValue).Cells(rrow, 24).Value & Chr(34) & ";" & _ Chr(34) & Worksheets(tbValue).Cells(6, 25).Value & Chr(34) & ":" & Chr(34) & Worksheets(tbValue).Cells(rrow, 25).Value & Chr(34) & ";" & _ Chr(34) & Worksheets(tbValue).Cells(6, 26).Value & Chr(34) & ":" & Chr(34) & Worksheets(tbValue).Cells(rrow, 26).Value & Chr(34) & ";" & _ Chr(34) & Worksheets(tbValue).Cells(6, 27).Value & Chr(34) & ":" & Chr(34) & Worksheets(tbValue).Cells(rrow, 27).Value & Chr(34) & ";" & _ Chr(34) & Worksheets(tbValue).Cells(6, 28).Value & Chr(34) & ":" & Chr(34) & Worksheets(tbValue).Cells(rrow, 28).Value & Chr(34) & ";" & _ Chr(34) & Worksheets(tbValue).Cells(6, 29).Value & Chr(34) & ":" & Chr(34) & Worksheets(tbValue).Cells(rrow, 29).Value & Chr(34) & ";" & _ Chr(34) & Worksheets(tbValue).Cells(6, 30).Value & Chr(34) & ":" & Chr(34) & Worksheets(tbValue).Cells(rrow, 30).Value & Chr(34) & ";" & _ Chr(34) & Worksheets(tbValue).Cells(6, 31).Value & Chr(34) & ":" & Chr(34) & Worksheets(tbValue).Cells(rrow, 31).Value & Chr(34) & ";" & _ Chr(34) & Worksheets(tbValue).Cells(6, 32).Value & Chr(34) & ":" & Chr(34) & Worksheets(tbValue).Cells(rrow, 32).Value & Chr(34) & ";" & _ Chr(34) & Worksheets(tbValue).Cells(6, 33).Value & Chr(34) & ":" & Chr(34) & Worksheets(tbValue).Cells(rrow, 33).Value & Chr(34) & ";" & _ Chr(34) & Worksheets(tbValue).Cells(6, 34).Value & Chr(34) & ":" & Chr(34) & Worksheets(tbValue).Cells(rrow, 34).Value & Chr(34) & ";" & _ Chr(34) & Worksheets(tbValue).Cells(6, 35).Value & Chr(34) & ":" & Chr(34) & Worksheets(tbValue).Cells(rrow, 35).Value & Chr(34) & ";" 

现在,这是所有人都通过困难的方式填充,我想要做一个for循环,但我不知道如何连接使用Excel VBA。

我现在有一个for循环遍历所有的行,“rrow”是行的迭代器。

任何人都知道如何连接所有这些for循环?

你正在寻找的循环可能是这样的:

 Dim c As Long myproperty = "" For c = 15 To 35 myproperty = myproperty & _ Chr(34) & Worksheets(tbValue).Cells(6, c).Value & Chr(34) & _ ":" & _ Chr(34) & Worksheets(tbValue).Cells(rrow, c).Value & Chr(34) & _ ";" Next 

像这样的东西

 Sub x() Dim a() As Variant a = worksheets("Sheet1").Range("a1:a8").Value a = Application.Transpose(a) Debug.Print "'" & Join(a, "':'") & "'" End Sub 

我想这或多或less是你正在寻找的。

 Private Sub ConcatValues() Dim MyProperty As String Dim Fun() As String Dim i As Integer Dim Rl As Long Dim R As Long, C As Long i = -1 With Worksheets("tbValue") ' find the last used row in column A Rl = .Cells(.Rows.Count, "A").End(xlUp).Row For R = 7 To Rl ' start with row 7 (??) i = i + 1 ReDim Preserve Fun(i) For C = 16 To 35 Fun(i) = Fun(i) & Chr(34) & .Cells(6, C).Value & Chr(34) & _ ":" & Chr(34) & .Cells(R, C).Value & Chr(34) & "; " Next C MyProperty = Join(Fun) Debug.Print MyProperty Next R End With End Sub 

我不知道你想用连接的string做什么。 所以上面的代码只是输出到立即窗口。 您可以将其分配给单元格或将其输出到文本文件。

NB。 我试图用分号作为Join函数的分隔符。 VBA拒绝接受任何分隔符,但是,也许是因为最后的引号Chr(34)。