[英]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.