2017-06-11 92 views
-2

我有一個10k +的Excel文件,其結構如下:(在A列中):「城市的名稱是:」後面跟着幾行 「...的貢獻」,然後是 行,不感興趣...然後是 「案例結束」...並重復。
我需要提取以「城市名稱」開頭的行和城市名稱後面的「來自」行,並將每組行粘貼在單獨的工作表中。你能幫我嗎?永遠感謝。如何根據VBA中的內容選擇Excel行的範圍

+0

歡迎StackOverflow上。請注意,這不是免費的代碼寫入服務。然而,我們渴望幫助其他程序員(和有志之士)編寫他們自己的代碼。請閱讀[我如何問一個好問題](http://stackoverflow.com/help/how-to-ask)上的幫助主題。您可能還想[參觀](http://stackoverflow.com/tour)並在此過程中獲得徽章。之後,請用您迄今編寫的VBA代碼更新您的問題,以完成您希望實現的任務。我們會在這裏等你。隨時準備協助並幫助您完成*您的*代碼。 – YowE3K

回答

0

我不知道,我理解你的問題。

Sub transData() 
    Dim vDB, vR() 
    Dim i As Long, n As Long 
    vDB = ActiveSheet.UsedRange 
    For i = 1 To UBound(vDB, 1) 
     If Left(vDB(i, 1), 4) = "Name" Then 
      n = n + 1 
      ReDim Preserve vR(1 To n) 
     End If 
      vR(n) = vR(n) & " " & vDB(i, 1) 
    Next i 
    Sheets.Add 
    Range("a1").Resize(n) = WorksheetFunction.Transpose(vR) 
End Sub 

或者,

Sub transData() 
    Dim vDB, vR() 
    Dim i As Long, n As Long 
    vDB = ActiveSheet.UsedRange 
    For i = 1 To UBound(vDB, 1) 
     If Left(vDB(i, 1), 4) = "Name" Then 
      n = n + 1 
      ReDim Preserve vR(1 To n) 
     End If 
      If Left(vDB(i, 1), 4) = "Name" Or Left(vDB(i, 1), 12) = "contribution" Then 
       vR(n) = vR(n) & " " & vDB(i, 1) 
      End If 
    Next i 
    Sheets.Add 
    Range("a1").Resize(n) = WorksheetFunction.Transpose(vR) 
End Sub