Excel宏将特定的单元格行从一个工作表剪切到另一个工作表
我有一个名为CASES-PENDING的工作表,其中有许多行数据。每天,我将特定行的起始单元格的状态更改为“完成”(从“待定”更改为“完成”)。我想用一个宏来完成这项工作,而不是剪切那一行并粘贴到我的其他已完成的标题工作表上。 我想在将几行数据的状态从“挂起”更改为“完成”后运行宏。然后,所有这些行都必须剪切并粘贴到另一个工作表上。 可能吗?Excel宏将特定的单元格行从一个工作表剪切到另一个工作表,excel,vba,Excel,Vba,我有一个名为CASES-PENDING的工作表,其中有许多行数据。每天,我将特定行的起始单元格的状态更改为“完成”(从“待定”更改为“完成”)。我想用一个宏来完成这项工作,而不是剪切那一行并粘贴到我的其他已完成的标题工作表上。 我想在将几行数据的状态从“挂起”更改为“完成”后运行宏。然后,所有这些行都必须剪切并粘贴到另一个工作表上。 可能吗? 非常感谢各位 这只是暗中捅了一刀,但我最近一直在处理类似的事情 Dim LastRow As Long Range("1:1").AutoFilter F
非常感谢各位 这只是暗中捅了一刀,但我最近一直在处理类似的事情
Dim LastRow As Long
Range("1:1").AutoFilter Field:=(Row you have "Done" in), Criteria1:="Done"
LastRow = Cells(Rows.Count, 3).End(xlUp).Row
Range("CellRangeYouNeedCopied" & LastRow).Copy Destination:=Sheets("SheetX").Range(X,Y)
基本上,这只过滤到其中包含DONE的行,然后复制并粘贴到您决定命名的任何其他工作表上。记住替换所有的变量。我还是个新手,所以我可能错了,但值得一试
编辑:您也可以将其记录为宏,然后使用长变量更改范围,使其成为变量 你也可以这样做。代码比自动筛选解决方案多,但可能更灵活
Sub MoveDoneRows()
Dim nStatusCol As Integer
nStatusCol = 1
Dim i As Integer
i = 2
' select first row to insert rows into DONE sheet
Dim nInsertRow As Integer
Sheets("CASES-DONE").Select
Range("A1").Select
Selection.End(xlDown).Select
nInsertRow = ActiveCell.Row + 1
' move rows with status done
Dim sStatus As String
Dim sPasteRow As String
sStatus = Sheets("CASES-PENDING").Cells(i, nStatusCol).Value
While sStatus <> ""
If sStatus = "done" Then
' cut the current row from PENDING sheet
sPasteRow = i & ":" & i
Sheets("CASES-PENDING").Select
Rows(sPasteRow).Select
Selection.Cut
' paste into DONE sheet
Sheets("CASES-DONE").Select
Cells(nInsertRow, nStatusCol).Select
ActiveSheet.Paste
nInsertRow = nInsertRow + 1
' delete empty row from PENDING sheet
Sheets("CASES-PENDING").Select
Rows(sPasteRow).Select
Selection.Delete Shift:=xlUp
Else
i = i + 1
End If
sStatus = Sheets("CASES-PENDING").Cells(i, nStatusCol)
Wend
End Sub
Sub-MoveDoneRows()
Dim nStatusCol作为整数
nStatusCol=1
作为整数的Dim i
i=2
'选择第一行以将行插入到完成的工作表中
将行设置为整数
工作表(“已完成的案例”)。选择
范围(“A1”)。选择
选择。结束(xlDown)。选择
nisertrow=ActiveCell.Row+1
'移动状态为“完成”的行
作为弦的模糊状态
朦胧如弦
sStatus=表格(“待处理案例”).单元格(i,nStatusCol).值
而sStatus“
如果sStatus=“完成”,则
'从挂起的工作表中剪切当前行
sPasteRow=i&“:”&i
表格(“待决案件”)。选择
行(sPasteRow)。选择
选择,剪
'粘贴到完成的工作表中
工作表(“已完成的案例”)。选择
单元格(nInsertRow、nStatusCol)。选择
活动表。粘贴
n插入行=n插入行+1
'从挂起的工作表中删除空行
表格(“待决案件”)。选择
行(sPasteRow)。选择
选择。删除移位:=xlUp
其他的
i=i+1
如果结束
sStatus=表格(“待决案例”)。单元格(i,nStatusCol)
温德
端接头