簡體   English   中英

動態逐行連接列值

[英]Concatenate Column Values Row by Row Dynamically

我的代碼將表“ Data”的第一行的列的值連接起來,並將結果寫入表“ Insert”的單元格A1中。

錯誤是,下一行的連接結果被添加到表“插入” A1中的第一個結果的末尾,依此類推。 結果也應逐行寫入表“ Insert”的列A中。

我的代碼有什么問題?

Sub InsertStatementRow()
Dim x As String
Dim rng As Range
Dim cel As Range
Dim ColMax As Integer
Dim i As Long

    Sheets("Data").Select

        ColMax = Cells(1, Columns.Count).End(xlToLeft).Column

    row = 1
    Do While Cells(row, "A").Value <> ""

        With Worksheets("Data")
        i = 1
        Set rng = Range(.Cells(i, 1), .Cells(i, ColMax))
        End With

        For Each cel In rng

            x = x & cel.Value

        Next

        Sheets("Insert").Cells(i, 1).Value = x

    row = row + 1
    Loop

End Sub

謝謝你的幫助!

你設置

i=1

之前

Set rng = Range(.Cells(i, 1), .Cells(i, ColMax))

但是你似乎在和可變row一起工作。 因此刪除/注釋行i=1並更改Set rng

Set rng = Range(.Cells(row, 1), .Cells(row, ColMax))

希望它能解決您的問題。

每次Do While循環開始時,i都會設置為“ 1”,因此rng變量將始終引用Data工作表的第1行。 它還將復制到“插入”工作表上的第1行。 將i更改為row,它應該可以工作:

Do While Cells(row, "A").Value <> ""
    With Worksheets("Data")
        Set rng = Range(.Cells(row, 1), .Cells(row, ColMax))
    End With

    x = ""

    For Each cel In rng

        x = x & cel.Value

    Next

    Sheets("Insert").Cells(row, 1).Value = x

row = row + 1
Loop

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM