2015-09-04 58 views
-2

我希望做的是對我擁有的一列信息進行排序並將其排序爲行。我需要日期,然後將所有非數字單元連接在一起。然後在第一次約會下方的線下一個日期等選擇單元格直到它們不再符合條件,然後繼續

所以我的專欄,看起來像這樣:

42250 
A 
E 
C 
D 
B 
42244 
E 
F 
42243 
A 
B 
F 

將成爲:

42250 AECDB 
42244 EF 
42243 ABF 

我覺得用很舒服複製,拼接和粘貼。我正在努力的是我如何做選擇。

我想在以下方面:

  • 選擇單元格1(執行復制/粘貼操作)。
  • 然後,選擇下一個單元格並繼續選擇,只要 內容不是數字。如果下一個單元格是一個數字,那麼不要選擇 它,並且不要繼續前進。 (執行復制/粘貼操作)。
  • 移動到下一個單元格,如果它是一個數字(執行復制/粘貼 動作)。
  • 然後,選擇下一個單元格並繼續選擇,只要
    的內容不是數字。如果下一個單元格是一個數字,那麼不要選擇 它,並且不要繼續前進。 (執行復制/粘貼操作)。
  • 繼續,直到一個單元格爲空。
+1

我建議你看到目前爲止你已經嘗試代碼^ _ ^ – findwindow

回答

0

這是一個可能的解決方案:

Sub DoMagic() 
    Dim lin As Integer 
    Dim start As Integer 
    Dim text As String 

    start = 0 
    lin = 1 
    'the loop will continue until first blank cell 
    While Len(Cells(lin, 1).Value) > 0 
     'check if the cell content is numeric 
     If IsNumeric(Cells(lin, 1).Value) Then 
      'if start was already set, save the previous text 
      If start <> 0 Then Cells(start, 2).Value = text 
      'store the row index in start and erase text 
      start = lin 
      text = "" 
      lin = lin + 1 'go to the next line 
     Else 
      'if it's not numeric, keep concatenating and deleting the line 
      text = text & Cells(lin, 1).Value 
      Cells(lin, 1).EntireRow.Delete 
      'we don't need lin++ here because Delete does that 
     End If 
    Wend 
    'store the last concatenated text if any 
    If start <> 0 Then Cells(start, 2).Value = text 
End Sub 
0

試試這個:

Dim actCell As Range 
Dim t As Integer 
Dim conc As String 
Set actCell = Range("A1") '---- this is the first cell you want 

Do 
    t = 0 
    conc = "" 
    Do 
     conc = conc & actCell.Offset(t) 'concatenate each cell 
     t = t + 1 
    Loop Until IsNumeric(Offset(t)) 
    Range("C600000").End(xlUp).Offset(1) = conc ' --- change this to what ever you want for your output 
    Set actCell = actCell.Offset(t) 
Loop Until actCell = "" 
相關問題