![](/img/trans.png)
[英]Need a macro to copy specific cells from a row in one worksheet to a specific cells in another worksheet base upon a data in the cell
[英]Excel macro to cut a specific row of cells from one worksheet to another
我有一個名為CASES-PENDING的工作表,其中包含許多行數據。 我每天都會將特定行的開始單元格的狀態更改為“完成”(從“待處理”更改為)。 不需要剪切該行並將其粘貼到我的其他CASES-DONE標題為工作表上的方法,我想要一個宏來執行此操作。 我想在將幾行數據的狀態從“待處理”更改為“完成”后運行宏。 然后,必須將所有這些行剪切並粘貼到另一個工作表上。 那可能嗎? 非常感謝你們!
這只是黑暗中的一擊,但最近我一直在處理類似的事情。
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的行,並將其復制並粘貼到您決定命名的任何其他工作表上。 只要記住要替換所有變量即可。 我在這方面還很新,所以我可能錯了,但是值得一試!
編輯:您也可以僅將其記錄為宏,然后使用Long變量更改范圍以使其為變量。
您也可以這樣做。 比自動篩選解決方案更多的代碼,但可能更靈活。
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.