VBA年复制列表,列中最多包含关键字

VBA年复制列表,列中最多包含关键字,vba,excel,Vba,Excel,我目前正在尝试在Excel上创建一个反馈表,我对VBA是完全陌生的 我有一个填充年份(2014…2015等)的列,从单元格A4(第1页)开始,一直到包含“总计”的单元格 我想将本栏“总计”单元格之前的所有年份复制到第2页,要记住年份值和行位置不断变化……我还希望第2页上的新列表不包括第1页年份之间存在的空行 有什么建议吗 干杯, 马特试试看: Sub getInfo() Dim counter As Integer, lastRow As Integer counter = 1 lastRow

我目前正在尝试在Excel上创建一个反馈表,我对VBA是完全陌生的

我有一个填充年份(2014…2015等)的列,从单元格A4(第1页)开始,一直到包含“总计”的单元格

我想将本栏“总计”单元格之前的所有年份复制到第2页,要记住年份值和行位置不断变化……我还希望第2页上的新列表不包括第1页年份之间存在的空行

有什么建议吗

干杯, 马特

试试看:

Sub getInfo()
Dim counter As Integer, lastRow As Integer
counter = 1
lastRow = Cells.Find(What:="Grand Total", After:=[A4], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

For i = 4 To lastRow
    If Cells(counter, 1).Value < lastRow Then
        counter = counter + 1
    End If
Next i

Range("A4:A" & counter + 1).Copy Destination:=Sheets("Sheet2").Columns(1)
Sheets("Sheet2").Activate
For i = 1 To lastRow
    If Cells(i, 1).Value = "" Then
        Cells(i, 1).Delete
    End If
Next i
End Sub
Sub-getInfo()
Dim计数器为整数,最后一行为整数
计数器=1
lastRow=单元格。查找(内容:=“总计”,后面:=[A4],搜索顺序:=xlByRows,搜索方向:=xlPrevious)。行
对于i=4到最后一行
如果单元格(计数器,1)。值<最后一行,则
计数器=计数器+1
如果结束
接下来我
范围(“A4:A”和计数器+1)。复印目的地:=纸张(“纸张2”)。列(1)
工作表(“工作表2”)。激活
对于i=1到最后一行
如果单元格(i,1).Value=”“,则
单元格(i,1)。删除
如果结束
接下来我
端接头

欢迎来到SO。如果你阅读和编辑你的问题,并用你的编码努力让我们知道它失败的地方,你会得到更多的帮助。提供你的数据截图,以及你如何努力完成你的工作,我们会帮助你。干杯@ScottHoltzman and ElbertV,会的-Matt