Board logo

標題: 如何將儲存格 由直轉橫 [打印本頁]

作者: aoss98    時間: 2011-4-17 23:27     標題: 如何將儲存格 由直轉橫

如何將以下儲存格B欄資料轉寫在C欄並以 , 號分隔,這程式碼如何? 請各位高手指教,謝謝!!
A 欄             B欄           C欄
123456       34            34,36,38,40   
1245           36
675             38
457             40

1456            30          30,32
123              32

823              S             S,M,L
2628            M
939              L
作者: oobird    時間: 2011-4-18 08:48

  1. Sub yy()
  2. i = 1
  3. Do
  4. b = Range(Cells(i, 2), Cells(i, 2).End(4))
  5. Cells(i, 3) = Join(Application.Transpose(b), ",")
  6. i = i + UBound(b) + 1
  7. Loop Until Cells(i, 2) = ""
  8. End Sub
複製代碼

作者: aoss98    時間: 2011-4-18 21:41

謝謝 oobird!!
問題解決了, 但不理解這句  b = Range(Cells(i, 2), Cells(i, 2).End(4))
可否再指教,謝謝!!
作者: oobird    時間: 2011-4-19 09:33

如i=1時b = Range(Cells(i, 2), Cells(i, 2).End(4))
相當於把滑鼠放在b1
按下ctrl+shift+向下鍵
作者: GBKEE    時間: 2011-4-19 17:29

本帖最後由 GBKEE 於 2011-4-23 17:42 編輯

回復 1# aoss98
Sub Ex()
    Dim C As Range
    For Each C In Range("B:B").SpecialCells(xlCellTypeConstants).Areas
        C.Cells(1, 2) = Join(Application.Transpose(C), ",")
    Next
End Sub
作者: aoss98    時間: 2011-4-19 21:35

謝謝 GBKEE 指教, 當程式執行這句便中止 For Each C In Range("c:c").SpecialCells(xlCellTypeConstants).Areas
另外 如果只有一列資料,執行 oobird 程式碼便出現以下結果
A 欄             B欄           C欄
123456       34            34,36

1245           36

1456            30          30,32
123              32
應該結果是
A 欄             B欄           C欄
123456       34            34

1245           36            36

1456            30          30,32
123              32
請各位再指教,謝謝!!
作者: a8350070    時間: 2011-4-19 23:29

小弟借oobird版大的程式碼稍作修改
Sub yy()
i = 1
Do
aa = Cells(i, 2).CurrentRegion.Rows.Count
b = Cells(i, 2).Resize(aa, 1)
If aa = 1 Then
Cells(i, 3) = b
Else
Cells(i, 3) = Join(Application.Transpose(b), ",")
End If
i = i + aa + 1
Loop Until Cells(i, 2) = ""
End Sub
作者: aoss98    時間: 2011-4-20 00:09

謝謝a8350070,修改後的程式冇問題,謝謝你指敎。
作者: man65boy    時間: 2011-4-23 08:46

本帖最後由 Hsieh 於 2011-4-23 09:08 編輯

函數的參考
C1=LEFT(B1&","&B2&","&B3&","&B4&","&B5&","&B6&","&B7&","&B8&","&B9&","&B10,SUM(LEN($B$1:$B$10),COUNTA($B$1:$B$10),-1))

為陣列公式,輸入完請按        ctrl        +        shift        +        enter




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)