EXCEL VBA 問題 如何 if ? 從 Sheet1 的 Row 移去 Sheet2 ?

是這樣的

我的 Sheet1 有5000 條資料 , 而在 A 欄位中有 "A" 和 "C" (A = Active , 而 C = Cancel )
我想把 C 的移去 Sheet2 有沒有可能做到嗎 ? 我在網上都找不到..也暫時摸不著頭腦...

我在老外那邊找到這個語法...但好像不太通用.

Private Sub Worksheet_Change(ByVal Target As Range)
'This Funtion will Copy the Row where ever user enter 3 and past it into Completed Sheets
Dim lngLastRow As Integer, MyRange As Range
Set MyRange = Worksheets("completed").Cells(1, 1)
lngLastRow = Cells(65536, MyRange.Column).End(xlUp).Row
If Target.Value = 3 Or Target.Interior.ColorIndex = vbBlue Or Target.Font.ColorIndex = vbBlue Then
ActiveSheet.Rows(Target.Row).Copy Destination:=Sheets("completed").Cells(1.1)
End If
End Sub

你應該COUNT左幾多行先,(最尾同最尾下一行都係吉)
之後用LOOP由尾對應用IF係咪果行的value="C"
係就把colums.VALUE移去第二個SHEETS 放低,再REMOVE番SOURCES果行,
做到頭就搞掂.

TOP

呢d野真係慢慢check慢慢loop...
冇乜特別...

TOP

用pivot table + filter 得唔得

TOP

1) 用 filter cut and paste
2) access算啦

TOP

Assume in Sheet 1:

Column A            Column B
A                       123
C                       456
C                       789

Result in Sheet 2:

Column A            Column B
C                       456
C                       789

Here is the code:

LastRow1 = Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To LastRow1
    If Cells(i, 1) = "C" Then
        LastRow2 = Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Row
        If Sheets("Sheet2").UsedRange.Address = "$A$1" And Sheets("Sheet2").Range("A1") = "" Then
            Sheets("Sheet2").Cells(1, 1).Value = Cells(i, 1)
            Sheets("Sheet2").Cells(1, 2).Value = Cells(i, 2)
        Else
            Sheets("Sheet2").Cells(LastRow2 + 1, 1).Value = Cells(i, 1)
            Sheets("Sheet2").Cells(LastRow2 + 1, 2).Value = Cells(i, 2)
        End If
    End If
Next i

TOP