嗨论坛,感谢您希望能帮助我应对这一挑战。
我从某些软件接收原始数据,我需要过滤并创建报告。
所以,这里是原始数据的捕获:
所以我尝试做的就是写VBA来找到短语' Volume Synthetic Full Backup'然后将整行(以黄色突出显示)复制到新工作表上,然后将列A向上扫描到它找到的第一个非空单元格(粗体文本)并将其粘贴到上面提到的新工作表上,以便输出看起来像: p>
然后冲洗并重复其余部分
任何接受者?提供啤酒和很多啤酒!
抱歉,我正在构建以下内容:
Sub Save7()
Dim NextRow As Range
Set NextRow = Range("B" & Sheets("Sheet3").UsedRange.Rows.Count + 1)
Sheet1.Range("B14:I14").Copy
Sheet3.Activate
NextRow.PasteSpecial Paste:=xlValues, Transpose:=False
Application.CutCopyMode = False
Set NextRow = Nothing
End Sub
答案 0 :(得分:0)
我不是一个伟大的宏观家伙,但这里有一个关于如何实现这个目标的高层次思考:
这样您就不必尝试找到上一列A条目,这是我认为您陷入困境的地方。
答案 1 :(得分:0)
决定延长我的技能:)这将循环通过B列,直到它为空,并记住最后一个非空白列A条目是什么。对不起,如果它不漂亮。请随时帮助我学习如何做得更好!
Sub Macro1()
Sheet1.Activate
Range("b1").Select
sheet3counter = 0
' Set Do loop to stop when an empty cell is reached.
Do Until IsEmpty(ActiveCell)
If Not IsEmpty(ActiveCell.Offset(0, -1)) Then
SectionName = ActiveCell.Offset(0, -1)
End If
If ActiveCell.Value = "Volume Synthetic Full Backup" Then
ActiveCell.EntireRow.Copy
Sheet3.Activate
Range("a1").Offset(sheet3counter, 0).Select
With Selection
.PasteSpecial Paste:=xlPasteValues
.Value = SectionName
End With
Sheet1.Activate
sheet3counter = sheet3counter + 1
End If
ActiveCell.Offset(1, 0).Select
Loop
'Tidy up and format Sheet3
Application.CutCopyMode = False
Range("a1").Select
Sheet3.Activate
Cells.Select
Cells.EntireColumn.AutoFit
Range("a1").Select
End Sub
我们在哪里见啤酒?