2014-07-15 77 views
1

所以我的數據是這樣的:談到值的列到行

A    B 
sku  custom_option_row_sku 
AGR370A AGR370A-3 
     AGR370A-4 
     AGR370A-5 
     AGR370A-6 
     AGR370A-8 
     AGR370A-9 
     AGR370A-10 
     AGR370A-210 
     AGR370A-212 
AGR370B AGR370B-3 
     AGR370B-4 
     ... 

我需要B列,把它變成一個行,以便它仍然在A列中的值匹配

這將非常落得像:

A     B 
sku  custom_option_row_sku 
AGR370A AGR370A-3, AGR370A-4, AGR370A-5, etc. 

這是可能的內置功能或者我需要VBA這個?提前致謝。

回答

1

我剛剛用這段代碼用你給我的例子做了。如果您有任何問題,請告訴我,但它對我有用。爲了以防萬一,請務必備份。

Sub resort() 
Dim thesheet As Worksheet 
Set thesheet = Sheets("Sheet1") 
Dim lastrow As Long 
Dim x As Long 
Dim newRow As Long 
Dim colA As String 
Dim deleterRow As Long 
lastrow = thesheet.Range("B" & Rows.Count).End(xlUp).Row 

With thesheet 
newRow = 0 

For x = 1 To lastrow 
    colA = .Cells(x, 1).Value 
    If colA <> "" Then 
    colA = .Cells(x, 1).Value 
    newRow = x 
    Else 
    .Cells(newRow, 2).Value = .Cells(newRow, 2).Value & ", " & .Cells(x, 2).Value 
    End If 

Next 
deleterRow = 1 
For x = 1 To lastrow 
    colA = .Cells(deleterRow, 1).Value 
If colA = "" Then 
    .Rows(deleterRow).Delete 
Else 
    deleterRow = deleterRow + 1 
End If 
Next 
End With 
End Sub 
+0

這是非常接近..謝謝!唯一的問題是,這些值現在在不同的單元格中分開,但它們需要全部用逗號分隔幷包含在B列中。 – Anon

+0

@Anon我調整了一下代碼。我這次留下了評論,因爲他們需要很長時間才能投入,但如果您有任何問題,請參考我提供的舊代碼。我測試了這一點,它工作得很好。如果您有任何問題,請告訴我。 – Tronald

+0

好的,但是舊的行並沒有被刪除。我得到一個異常:'範圍類的刪除方法失敗 - - 有什麼想法?謝謝。 – Anon

0

如果沒有那麼多的信息,你不一定需要VBA。從列中複製所需的數據,轉到要粘貼的行,右鍵單擊 - >選擇性粘貼 - >移調。圖標看起來像這樣:enter image description here