首先,我必须为许多伪装成问题提出疑问。
我有一个待办事项列表,以帮助管理我的优先事项和我只想搜索待办事项列表表上的已完成列以及找到的任何日期数据条目,然后剪切,删除&将整行粘贴到“存档”工作表上,在下一个可用的未填充行中堆叠行。
我确实有一个正常运行的宏,但遗憾的是工作表已损坏,并且作为一个完整的VBA新手使这项任务相当令人生畏。
提前感谢您的幸免。
待办事项列表示例屏幕转储1
答案 0 :(得分:0)
试试这个:
Sub go_through_rows ()
lastrow = Cells(Rows.count, "A").End(xlUp).Row
for i to lastrow
If Not IsEmpty(CELLS(i, & "G").Value)
rows(i & ":" & i).select
selection.cut
SHEETS("target sheet name").activate
CELLS("A1").select
SELECTION.End(XlDOWN).select 'jumps to the last value in the sheet make sure there is data here already
ActiveCell.OFFSET(1, 0).select
Paste
Sheets("sheet with the raw data").activate
END IF
next i
答案 1 :(得分:0)
已解决以下问题;
Sub CopyRows()
Application.ScreenUpdating = False
Dim LastRow As Long
LastRow = Sheets("ToDo List").Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Sheets("ToDo List").Range("$A$1:$H$" & LastRow).AutoFilter Field:=7, Criteria1:="<>"
Sheets("ToDo List").Range("$A$2:$H$" & LastRow).SpecialCells(xlCellTypeVisible).EntireRow.Copy Sheets("Archive").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
Sheets("ToDo List").Range("$A$2:$H$" & LastRow).SpecialCells(xlCellTypeVisible).EntireRow.Delete
If Sheets("ToDo List").FilterMode Then Sheets("ToDo List").ShowAllData
Application.ScreenUpdating = True
End Sub