2017-06-11 65 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