Note: The other languages of the website are Google-translated. Back to English

Làm cách nào để di chuyển toàn bộ hàng sang một trang tính khác dựa trên giá trị ô trong Excel?

Để chuyển toàn bộ hàng sang một trang tính khác dựa trên giá trị ô, bài viết này sẽ giúp bạn.

Di chuyển toàn bộ hàng sang trang tính khác dựa trên giá trị ô với mã VBA
Di chuyển toàn bộ hàng sang một trang tính khác dựa trên giá trị ô với Kutools cho Excel


Di chuyển toàn bộ hàng sang trang tính khác dựa trên giá trị ô với mã VBA

Như ảnh chụp màn hình bên dưới được hiển thị, bạn cần phải di chuyển toàn bộ hàng từ Sheet1 sang Sheet2 nếu một từ cụ thể “Xong” tồn tại trong cột C. Bạn có thể thử mã VBA sau.

1. nhấn Khác+ F11 các phím đồng thời để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.

2. Trong cửa sổ Microsoft Visual Basic for Applications, bấm Chèn > Mô-đun. Sau đó sao chép và dán mã VBA bên dưới vào cửa sổ.

VBA code 1: Move entire row to another sheet based on cell value

Sub Cheezy()
'Updated by Kutools for Excel 2017/8/28
    Dim xRg As Range
    Dim xCell As Range
    Dim I As Long
    Dim J As Long
    Dim K As Long
    I = Worksheets("Sheet1").UsedRange.Rows.Count
    J = Worksheets("Sheet2").UsedRange.Rows.Count
    If J = 1 Then
       If Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0 Then J = 0
    End If
    Set xRg = Worksheets("Sheet1").Range("C1:C" & I)
    On Error Resume Next
    Application.ScreenUpdating = False
    For K = 1 To xRg.Count
        If CStr(xRg(K).Value) = "Done" Then
            xRg(K).EntireRow.Copy Destination:=Worksheets("Sheet2").Range("A" & J + 1)
            xRg(K).EntireRow.Delete
            If CStr(xRg(K).Value) = "Done" Then
                K = K - 1
            End If
            J = J + 1
        End If
    Next
    Application.ScreenUpdating = True
End Sub

Chú thích: Trong mã, Sheet1 là trang tính chứa hàng bạn muốn di chuyển. Và Sheet2 là trang tính đích nơi bạn sẽ định vị hàng tới. “C: C”Là cột chứa giá trị nhất định và từ“Thực hiện”Là giá trị nhất định mà bạn sẽ di chuyển hàng dựa trên. Vui lòng thay đổi chúng dựa trên nhu cầu của bạn.

3. Nhấn nút F5 để chạy mã, sau đó hàng đáp ứng các tiêu chí trong Sheet1 sẽ được chuyển đến Sheet2 ngay lập tức.

Chú thích: Đoạn mã VBA trên sẽ xóa các hàng khỏi dữ liệu gốc sau khi chuyển đến một trang tính được chỉ định. Nếu bạn chỉ muốn sao chép các hàng dựa trên giá trị ô thay vì xóa chúng. Vui lòng áp dụng mã VBA 2 bên dưới.

VBA code 2: Copy entire row to another sheet based on cell value

Sub MoveRowBasedOnCellValue()
'Updated by Extendoffice 2017/11/10
    Dim xRg As Range
    Dim xCell As Range
    Dim I As Long
    Dim J As Long
    Dim K As Long
    I = Worksheets("Sheet1").UsedRange.Rows.Count
    J = Worksheets("Sheet2").UsedRange.Rows.Count
    If J = 1 Then
    If Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0 Then J = 0
    End If
    Set xRg = Worksheets("Sheet1").Range("C1:C" & I)
    On Error Resume Next
    Application.ScreenUpdating = False
    For K = 1 To xRg.Count
        If CStr(xRg(K).Value) = "Done" Then
            xRg(K).EntireRow.Copy Destination:=Worksheets("Sheet2").Range("A" & J + 1)
            J = J + 1
        End If
    Next
    Application.ScreenUpdating = True
End Sub

Di chuyển toàn bộ hàng sang một trang tính khác dựa trên giá trị ô với Kutools cho Excel

Nếu bạn là người mới trong mã VBA. Ở đây tôi giới thiệu Chọn các ô cụ thể tiện ích của Kutools cho Excel. Với tiện ích này, bạn có thể dễ dàng chọn tất cả các hàng dựa trên một giá trị ô nhất định hoặc các giá trị ô khác nhau trong trang tính và sao chép các hàng đã chọn vào trang tính đích khi bạn cần. Hãy làm như sau.

Trước khi áp dụng Kutools cho Excel, Xin vui lòng tải xuống và cài đặt nó trước tiên.

1. Chọn danh sách cột chứa giá trị ô mà bạn sẽ di chuyển các hàng dựa trên, sau đó nhấp vào Kutools > Chọn > Chọn các ô cụ thể. Xem ảnh chụp màn hình:

2. Trong phần mở đầu Chọn các ô cụ thể hộp thoại, chọn Toàn bộ hàng trong Loại lựa chọn phần, chọn equals trong Loại cụ thể danh sách thả xuống, nhập giá trị ô vào hộp văn bản và sau đó nhấp vào OK .

Một Chọn các ô cụ thể hộp thoại bật lên để hiển thị cho bạn số hàng đã chọn và trong khi đó, tất cả các hàng chứa giá trị được chỉ định trong cột đã chọn đã được chọn. Xem ảnh chụp màn hình:

3. Nhấn nút Ctrl + C phím để sao chép các hàng đã chọn, rồi dán chúng vào trang tính đích mà bạn cần.

Chú thích: Nếu bạn muốn di chuyển các hàng sang một trang tính khác dựa trên hai giá trị ô khác nhau. Ví dụ: di chuyển các hàng dựa trên các giá trị ô "Xong" hoặc "Đang xử lý", bạn có thể bật Or điều kiện trong Chọn các ô cụ thể hộp thoại như hình minh họa bên dưới:

  Nếu bạn muốn dùng thử miễn phí (30-day) của tiện ích này, vui lòng nhấp để tải xuống, và sau đó đi đến áp dụng hoạt động theo các bước trên.


Các bài liên quan:


Các công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2021 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ tính năng Dùng thử miễn phí 30 ngày. Bảo đảm hoàn lại tiền trong 60 ngày.
tab kte 201905

Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
officetab dưới cùng
Nhận xét (299)
Chưa có xếp hạng. Hãy là người đầu tiên xếp hạng!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, tôi thấy hướng dẫn cụ thể này thực sự hữu ích so với những hướng dẫn khác mà tôi đã xem. Cảm ơn bạn! Vấn đề tôi đang gặp phải là nếu tôi thay đổi giá trị mong muốn của mình thành 'Đã đóng', tôi phải chạy F5 để di chuyển hàng. Tôi muốn nó tự động di chuyển. Tôi mới làm quen với Excel nên sự trợ giúp của bạn rất được đánh giá cao. Sub Cheezy () Dim xRg As Range Dim xCell As Range Dim I As Long Dim J As Long I = Worksheets ("ECR Incident Tracker"). UsedRange.Rows.Count J = Worksheets ("Các vấn đề đã được giải quyết"). UsedRange.Rows. Đếm Nếu J = 1 Thì Nếu Application.WorksheetFunction.CountA (Worksheets ("Các vấn đề đã được giải quyết"). UsedRange) = 0 Then J = 0 End If Set xRg = Worksheets ("ECR Incident Tracker"). Phạm vi ("B1: B" & I) Khi Lỗi Tiếp tục Ứng dụng Tiếp theo.ScreenUpdating = Sai Đối với Mỗi xCell Trong xRg Nếu CStr (xCell.Value) = "Đã đóng" Thì xCell.EntireRow.Copy Đích: = Worksheets ("Các vấn đề đã được giải quyết"). Phạm vi ("A" & J + 1) xCell.EntireRow.Delete J = J + 1 End If Next Application.ScreenUpdating = True End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, tôi đang cố gắng tự động hóa việc di chuyển các ô mà không cần phải mở mô-đun và nhấn F5. Bạn đã bao giờ giải quyết câu hỏi này chưa? Cảm ơn bạn trước!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Crystal đã cung cấp thông tin về cách thực hiện điều đó ngày hôm nay - hãy xem trang một của chủ đề này để xem phản hồi của cô ấy. Nó tự động di chuyển hàng có ngày hôm nay trong một cột (trong trường hợp của tôi là L) sang một trang tính khác.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi đang chạy mã này và đang cố gắng di chuyển một hàng dựa trên ngày hôm nay xuất hiện trong cột I - Tôi đã thay đổi Phạm vi ("B1: B" & I) thành Phạm vi (I1: I "& I). Tôi đã thay đổi" Xong "trong ví dụ của bạn là Ngày. Tuy nhiên, khi ngày hôm nay xuất hiện ở bất kỳ vị trí nào trong hàng, không chỉ trong cột I theo yêu cầu, hàng sẽ chuyển sang trang tính thay thế. Bất kỳ ý tưởng nào tại sao điều này lại xảy ra và cách tôi có thể di chuyển hàng chỉ khi ngày hôm nay nằm trong cột I, bất kể ngày hôm nay có xuất hiện trong các cột khác hay không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Nếu tôi muốn có nhiều giá trị và nhiều trang tính để di chuyển hàng của mình, tôi sẽ phải viết lại toàn bộ mã với một giá trị khác cho ô đó? Có nghĩa là, nếu tôi đặt NA vào một ô, nó sẽ chuyển đến trang tính Na, và nếu tôi đặt W #, nó sẽ chuyển đến trang số sai, v.v.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
xin chào, điều này rất hữu ích. Có cách nào để thực hiện việc này mà không phải di chuyển hàng dữ liệu sang trang tính thứ hai mà phải sao chép nó không? Vì vậy, dữ liệu sẽ vẫn còn trên cả hai trang tính?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, mã này rất hữu ích, nhưng thay vì sao chép toàn bộ hàng, tôi yêu cầu một lựa chọn hàng nhất định được chuyển sang trang tính tiếp theo. làm cách nào để xác định một dải ô thay vì toàn bộ một hàng Sub Cheezy () Dim xRg As Range Dim xCell As Range Dim I As Long Dim J As Long I = Worksheets ("Sheet1"). usedRange.Rows.Count J = Worksheets (" Sheet2 "). UsedRange.Rows.Count If J = 1 Then If Application.WorksheetFunction.CountA (Worksheets (" Sheet2 "). UsedRange) = 0 Then J = 0 End If Set xRg = Worksheets (" Sheet1 "). Phạm vi ( "C1: C" & I) Khi Lỗi Tiếp tục Ứng dụng Tiếp theo.ScreenUpdating = Sai Đối với Mỗi xCell Trong xRg Nếu CStr (xCell.Value) = "Xong" Sau đó xCell.Toàn bộ hàng.Copy Destination: = Worksheets ("Sheet2"). Range ("A" & J + 1) J = J + 1 End If Next Application.ScreenUpdating = True End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
mã sẽ là gì nếu tôi muốn sao chép các hàng (ô cụ thể) vào một trang tính khác đến các ô cụ thể? NHƯNG cũng dựa trên một giá trị Ví dụ: chuỗi hình ảnh sản phẩm màu máy xay sinh tố màu trắng 2 máy xay sinh tố trắng 2 máy ép trái cây đen 3 máy ép trái cây blackjuicer3 màu đỏ tv 1 redtv1 màu xanh lá cây sắt 4 máy xay sinh tố nên được sao chép thành 4 hàng
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Đoạn mã rất đẹp, hoạt động rất tốt. Làm cách nào để thay đổi mã này để di chuyển các hàng từ bảng này sang bảng khác, thay vì từ trang này sang trang tính khác? Cảm ơn nhiều !
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Tôi đang cố gắng sử dụng mã nhưng tôi nhận được lỗi cú pháp trên Dim xCell As Range. Bạn có thể giúp đỡ được không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Sub Cheezy () Dim xRg As Range Dim xCell As Range Dim I As Long Dim J As Long I = Worksheets ("Sheet1"). UsedRange.Rows.Count J = Worksheets ("Sheet2"). UsedRange.Rows.Count If J = 1 Then If Application.WorksheetFunction.CountA (Worksheets ("Sheet2"). UsedRange) = 0 Then J = 0 End If Set xRg = Worksheets ("Sheet1"). Phạm vi ("C1: C" & I) Khi Tiếp tục Lỗi Ứng dụng tiếp theo.ScreenUpdating = False For Each xCell Trong xRg If CStr (xCell.Value) = "Done" Then xCell.EntireRow.Copy Destination: = Worksheets ("Sheet2"). Range ("A" & J + 1) xCell. EntireRow.Delete J = J + 1 End If Next Application.ScreenUpdating = True End Sub Làm cách nào để thêm trang tính thứ hai để chuyển các hàng sang trang tính 2?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi nên nhập gì nếu tôi muốn bao gồm bất kỳ ngày nào làm giá trị của mình? Vì vậy, hàng vẫn ở trên trang 1 nếu nó không có ngày, và chuyển sang trang 2 nếu có?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
[quote] xin chào, điều này rất hữu ích. Có cách nào để thực hiện việc này mà không phải di chuyển hàng dữ liệu sang trang tính thứ hai mà phải sao chép nó không? Vì vậy, dữ liệu sẽ vẫn còn trên cả hai trang tính?Bởi Maddie[/ quote] có ai giải quyết việc này không
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xóa "xCell.EntireRow.Delete" này khỏi mã
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Khi tôi xóa dòng mã đó và chạy lại macro, Excel sẽ bị đóng băng. Tại sao và làm cách nào để khắc phục nó ?? Tôi muốn dữ liệu có trên cả hai trang tính và không bị xóa khỏi trang tính ban đầu. TIA
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
có một câu trả lời cho điều này? Của tôi cũng bị đóng băng, tôi muốn sao chép nhưng không xóa hàng
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Ngày tốt,
Mã VBA dưới đây có thể giúp bạn chỉ sao chép các hàng thay vì xóa chúng.

Sub Cheezy ()
Dim xRg theo phạm vi
Dim xCell As Range
Dim I As Long
Dim J As Long
Mờ K Như Lâu
I = Worksheets ("Sheet1"). UsedRange.Rows.Count
J = Worksheets ("Sheet2"). UsedRange.Rows.Count
Nếu J = 1 Thì
Nếu Application.WorksheetFunction.CountA (Worksheets ("Sheet2"). UsedRange) = 0 Thì J = 0
Cuối Nếu
Đặt xRg = Worksheets ("Sheet1"). Phạm vi ("C1: C" & I)
On Error Resume Next
Application.ScreenUpdating = Sai
Đối với K = 1 Đến xRg.Count
Nếu CStr (xRg (K) .Value) = "Xong" Thì
xRg (K) .EntireRow.Copy Destination: = Worksheets ("Sheet2"). Range ("A" & J + 1)
J = J + 1
Cuối Nếu
Sau
Application.ScreenUpdating = True
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, tôi đang tìm kiếm một biến thể cho điều này. Tôi cần tập lệnh chạy liên tục hoặc không chạy được bất cứ khi nào giá trị trong trường cụ thể đó thay đổi. Bản thân mã hoạt động nhưng cần được chạy độc lập. Tôi muốn nó được tự động hóa. Bất cứ ai có thể hỗ trợ?

Ngoài ra, nếu tôi chỉ muốn nó sao chép qua các ô cụ thể trong phạm vi, thì điều đó được thực hiện như thế nào?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Rob thân mến,

Nếu bạn cần tập lệnh chạy tự động khi các ô trong trường đó thay đổi, mã VBA dưới đây có thể giúp bạn. Vui lòng nhấp chuột phải vào tab trang tính hiện tại (trang tính có các hàng bạn sẽ di chuyển tự động), sau đó chọn Mã Chế độ xem từ trình đơn ngữ cảnh. Sau đó sao chép và dán tập lệnh VBA bên dưới vào cửa sổ Mã.

Private Sub Worksheet_Change (ByVal Target As Range)

Dim xCell As Range

Dim I As Long
On Error Resume Next

Application.ScreenUpdating = Sai

Đặt xCell = Target (1)
If xCell.Value = "Done" Sau đó
I = Worksheets ("Sheet2"). UsedRange.Rows.Count
Nếu tôi = 1 thì

Nếu Application.WorksheetFunction.CountA (Worksheets ("Sheet2"). UsedRange) = 0 Thì I = 0

Cuối Nếu

xCell.EntireRow.Copy Worksheets ("Sheet2"). Phạm vi ("A" & I + 1)

xCell.EntireRow.Delete
Cuối Nếu

Application.ScreenUpdating = True

End Sub


Đối với câu hỏi thứ hai của bạn, bạn có nghĩa là chỉ sao chép một số ô thay vì toàn bộ hàng? Hoặc bạn vui lòng cung cấp ảnh chụp màn hình câu hỏi của bạn? Cảm ơn bạn!

Trân trọng, Crystal
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Pha lê,


Sự giúp đỡ của bạn là nhiều hơn sau đó cần thiết :)



Cách chúng ta có thể thêm một crtieria khác ở đây, ví dụ: tôi muốn chuyển Đã hoàn thành bên cạnh Xong:


Private Sub Worksheet_Change (ByVal Target As Range)

Dim xCell As Range

Dim I As Long
On Error Resume Next

Application.ScreenUpdating = Sai

Đặt xCell = Target (1)
If xCell.Value = "Done" Sau đó
I = Worksheets ("Sheet2"). UsedRange.Rows.Count
Nếu tôi = 1 thì

Nếu Application.WorksheetFunction.CountA (Worksheets ("Sheet2"). UsedRange) = 0 Thì I = 0

Cuối Nếu

xCell.EntireRow.Copy Worksheets ("Sheet2"). Phạm vi ("A" & I + 1)

xCell.EntireRow.Delete
Cuối Nếu

Application.ScreenUpdating = True

End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào Crystal
Đây là thông tin hữu ích nhất mà tôi tìm thấy trên web và macro này thực hiện những gì tôi muốn. Nhưng tôi đang di chuyển các hàng từ bảng này sang bảng khác - và với macro này, thông tin sẽ di chuyển tới dòng trống đầu tiên bên ngoài bảng, chứ không phải dòng trống tiếp theo trong bảng? Bạn có thể giúp?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi đang chạy mã này và đang cố gắng di chuyển một hàng dựa trên ngày hôm nay xuất hiện trong cột I - Tôi đã thay đổi Phạm vi ("B1: B" & I) thành Phạm vi (I1: I "& I). Tôi đã thay đổi" Xong "trong ví dụ của bạn là Ngày. Tuy nhiên, khi ngày hôm nay xuất hiện ở bất kỳ vị trí nào trong hàng, không chỉ trong cột I theo yêu cầu, hàng sẽ chuyển sang trang tính thay thế. Bất kỳ ý tưởng nào tại sao điều này lại xảy ra và cách tôi có thể di chuyển hàng chỉ khi ngày hôm nay nằm trong cột I, bất kể ngày hôm nay có xuất hiện trong các cột khác hay không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
David thân mến,

Mã hoạt động tốt đối với tôi sau khi thay đổi phạm vi và giá trị biến thể cho đến nay. Định dạng ngày trong mã của bạn phải khớp với định dạng ngày bạn đã sử dụng trong trang tính. Hoặc là nó thuận tiện cho bạn để đính kèm trang tính của bạn?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Crystal,


Tôi không rõ ý bạn là gì khi bạn nói rằng mã và định dạng ngày của bảng tính phải khớp với nhau - Tôi không phải là chuyên gia VB, hơn nữa là một người mới làm quen. Trong bảng tính của mình, tôi nhập ngày hôm nay vào cột F làm ngày nhập của hàng, ở định dạng ctrl + :. Tôi nhập ngày hết hạn vào cột "I" ở định dạng mm / dd / yyyy. Tuy nhiên, điều này gây ra sự cố khi thực hiện một mục nhập hàng mới và nhập ngày hôm nay vào cột F vì ngay sau khi nhập nó, hàng sẽ được chuyển sang trang tính mới. Ngoài ra, mã bổ sung để chạy bất cứ khi nào sổ làm việc được mở không xuất hiện để chạy mà không cần tôi buộc nó phải làm như vậy. Xin lỗi vì những gì có thể xảy ra với bạn những vấn đề rất nhỏ nhưng tôi không thể nghe về những vấn đề này. Bất kỳ trợ giúp sẽ được đánh giá cao.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
David thân mến,

Tôi đã thử như chính xác những gì bạn đề cập ở trên, nhưng liều lượng vấn đề không xuất hiện trong trường hợp của tôi. Bạn có thể cung cấp phiên bản Excel của mình không? Tôi cần thêm thông tin để giúp giải quyết vấn đề này. Xin lỗi để làm phiền bạn một lần nữa.

Trân trọng, Crystal
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Crystal, đây là những bảng tính liên quan. Bạn sẽ thấy trong mã đã sao chép mà tôi đang tìm kiếm ngày hôm nay "tối đa" trong cột L và nếu "tối đa" và bao gồm cả ngày hôm nay nằm trong cột đó thì tôi muốn di chuyển hàng chứa ngày đó sang một trang tính mới. Hiện tại, khi tôi nhập ngày hôm nay vào bất kỳ vị trí nào trong hàng (ví dụ: cột F nếu ngày hôm nay được đưa ra), nó sẽ tự động di chuyển toàn bộ hàng sang bảng tính đã lưu trữ. Tôi thường nhập ngày hôm nay bằng cách sử dụng tổ hợp ctrl +:, thường ở cột F.
Ngoài ra, tôi muốn chuyển động này xảy ra khi tôi mở sổ làm việc. Hiện tại mình cần vào hiện mã rồi nhấn F5. Mọi lời khuyên về cách làm điều đó sẽ được hoan nghênh.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Rất tiếc, sổ làm việc đã bật macro của tôi sẽ không tải lên vì nó cho biết định dạng không được hỗ trợ. Đây là trong Excel 2016
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
David thân mến,

Mã VBA sau đây có thể giúp bạn đạt được nó.

Private Sub Workbook_Open ()
Dim xRg theo phạm vi
Dim xCell As Range
Dim I As Long
Dim J As Long
I = Worksheets ("CƠ HỘI OASIS HIỆN TẠI"). UsedRange.Rows.Count
J = Worksheets ("CƠ HỘI OASIS ĐÃ SẮP XẾP"). UsedRange.Rows.Count
Nếu J = 1 Thì
Nếu Application.WorksheetFunction.CountA (Worksheets ("CƠ HỘI OASIS ĐÃ SẮP XẾP"). UsedRange) = 0 Thì J = 0
Cuối Nếu
Đặt xRg = Worksheets ("CƠ HỘI OASIS HIỆN TẠI"). Phạm vi ("L1: L" & I)
On Error Resume Next
Application.ScreenUpdating = Sai
Đối với mỗi xCell Trong xRg
Nếu CStr (xCell.Value) = Ngày thì
xCell.EntireRow.Copy Destination: = Worksheets ("CƠ HỘI OASIS ĐÃ SẮP XẾP"). Phạm vi ("A" & J + 1)
xCell.EntireRow.Delete
J = J + 1
Cuối Nếu
Sau
End Sub

Ghi chú:
1. Bạn cần đặt tập lệnh VBA vào cửa sổ mã ThisWorkbook;
2. Sổ làm việc của bạn cần được lưu dưới dạng Sổ làm việc Hỗ trợ Macro của Excel.

Sau toán hạng trên, mỗi khi bạn mở sổ làm việc, toàn bộ hàng sẽ được chuyển đến trang tính ĐÃ SẮP XẾP nếu ô trong cột L đến ngày hôm nay.

Kính trọng Beast, Crystal
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn Crystal,
Điều này hoạt động tốt nếu ngày hôm nay đạt được trong cột L. Có cách nào để bao gồm cả ngày hôm nay trong cột L không, để nếu tôi không kiểm tra sổ làm việc trong một số ngày, nó sẽ tự động bao gồm các ngày trước đó của ngày hôm nay? Cảm ơn bạn rất nhiều vì đã giúp đỡ của bạn.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
David thân mến,

Xin lỗi, tôi không chắc tôi đã nhận được câu hỏi của bạn. Nếu vậy, tất cả các hàng sẽ được di chuyển miễn là các ngày trước đó xuất hiện trong cột L?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Crystal,

Nếu tôi không mở trang tính của mình trong vài ngày và ngày nhập trong cột L hiện đã trôi qua, tức là ngày trong ô trong cột L là ngày 11 tháng 2017 năm 13 nhưng không mở trang tính của mình cho đến ngày XNUMX tháng XNUMX, tôi sẽ giống như tất cả các mục nhập trong cột L được kiểm tra cho mọi ngày cho đến ngày hôm nay, sau đó di chuyển các hàng tương ứng sang trang tính mới. Hiện tại với mã bạn đã cung cấp, chỉ những hàng có ngày hiện tại trong cột L được chuyển sang trang tính mới, bỏ lại những hàng có ngày trước đó trong cột L, mà tôi hiện đang di chuyển theo cách thủ công sang trang tính mới. Cảm ơn bạn đã giúp đỡ.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
David thân mến,



Tôi hiểu ý bạn. Vui lòng thử tập lệnh VBA bên dưới. Khi mở sổ làm việc, tất cả các hàng có ngày tính đến ngày hôm nay trong cột L sẽ được chuyển sang trang tính mới được chỉ định.



Private Sub Workbook_Open ()
Dim xRg theo phạm vi
Dim xRgRtn dưới dạng phạm vi
Dim xCell As Range
Dim xLastRow miễn là dài
Dim I As Long
Dim J As Long
On Error Resume Next
xLastRow = Worksheets ("CƠ HỘI OASIS HIỆN TẠI"). usedRange.Rows.Count
If xLastRow <1 Then Exit Sub
J = Worksheets ("CƠ HỘI OASIS ĐÃ SẮP XẾP"). UsedRange.Rows.Count
Nếu J = 1 Thì
Nếu Application.WorksheetFunction.CountA (Worksheets ("CƠ HỘI OASIS ĐÃ SẮP XẾP"). UsedRange) = 0 Thì J = 0
Cuối Nếu
Đặt xRg = Worksheets ("CƠ HỘI OASIS HIỆN TẠI"). Phạm vi ("L1: L" & xLastRow)
Đối với I = 2 Đến xLastRow
If xRg (I) .Value> Date then Exit Sub
Nếu xRg (I) .Value <= Ngày thì
xRg (I) .EntireRow.Copy Destination: = Worksheets ("CÁC CƠ HỘI OASIS ĐÃ SẮP XẾP"). Phạm vi ("A" & J + 1)
xRg (I) .EntireRow.Delete
J = J + 1
tôi = tôi - 1
Cuối Nếu
Sau
End Sub

Bạn cần đặt tập lệnh VBA vào cửa sổ mã ThisWorkbook và lưu sổ làm việc dưới dạng Sổ làm việc Hỗ trợ Macro Excel.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn Crystal, Điều đó hoạt động tốt.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Crystal, tôi hơi vội vàng khi trả lời rằng mã đã hoạt động. Tôi đã mở sổ làm việc của mình hôm nay và các hàng chứa các mục nhập ngày trước trong ô cột L vẫn nằm trong "trang tính cơ hội oasis hiện tại" và chưa chuyển sang "trang tính ốc đảo được lưu trữ" như mong đợi. Bất kỳ ý tưởng tại sao điều này sẽ là trường hợp?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Các ô được đánh dấu nằm trong cột L liên quan đến câu hỏi ở trên và là tiêu chí (cho đến ngày hôm nay) để chuyển hàng sang trang tính mới. Hy vọng hình ảnh này sẽ giúp ích.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Đây cũng là một bản sao của cửa sổ VBA liên quan đến phần trên.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Crystal, tôi hơi vội vàng khi trả lời rằng mã đã hoạt động. Tôi đã mở sổ làm việc của mình hôm nay và các hàng chứa các mục nhập ngày trước trong ô cột L vẫn nằm trong "trang tính cơ hội oasis hiện tại" và chưa chuyển sang "trang tính ốc đảo được lưu trữ" như mong đợi. Bất kỳ ý tưởng tại sao điều này sẽ là trường hợp?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Pha lê,

Vì tôi không thể tải lên sổ làm việc của mình, nên tôi sẽ tạo lại các hàng & cột ở đây

ABCDEFGHIJKL
# Type Set-Aside Solicitation Sửa đổi # Ngày phát hành Câu hỏi Giao hàng của khách hàng Địa điểm Đề xuất Dự án Đến hạn

1 SS SB 1234567 1 09/6/17 Không có Tên quân đội Nơi Lái Xe tăng 09/10/17

Sử dụng mã bên dưới, tôi muốn nó di chuyển toàn bộ hàng sang một trang tính mới khi cột L đến ngày hôm nay. Ngoài ra, nếu tôi chưa hoàn thành trang tính trong một số ngày, tôi muốn nó sử dụng tìm kiếm "đến ngày hôm nay" trong cột L để thực hiện tương tự. Tôi cũng muốn nó tự động làm điều này khi tôi mở sổ làm việc nếu có thể. Hiện tại nếu tôi nhập ngày hôm nay vào bất kỳ ô nào trong hàng, ví dụ cột F khi nhập dữ liệu, toàn bộ hàng sẽ chuyển đến trang tính lưu trữ. (Sử dụng Excel 2016)

[Mã mô-đun 1]

Sub DaveV ()

Dim xRg theo phạm vi

Dim xCell As Range

Dim I As Long

Dim J As Long

I = Worksheets ("CƠ HỘI OASIS HIỆN TẠI"). UsedRange.Rows.Count

J = Worksheets ("CƠ HỘI OASIS ĐÃ SẮP XẾP"). UsedRange.Rows.Count

Nếu J = 1 Thì
Nếu Application.WorksheetFunction.CountA (Worksheets ("CƠ HỘI OASIS ĐÃ SẮP XẾP"). UsedRange) = 0 Thì J = 0

Cuối Nếu

Đặt xRg = Worksheets ("CƠ HỘI OASIS HIỆN TẠI"). Phạm vi ("L1: L" & I)

On Error Resume Next

Application.ScreenUpdating = Sai

Đối với mỗi xCell Trong xRg

Nếu CStr (xCell.Value) = Ngày thì

xCell.EntireRow.Copy Destination: = Worksheets ("CƠ HỘI OASIS ĐÃ SẮP XẾP"). Phạm vi ("A" & J + 1)
xCell.EntireRow.Delete

J = J + 1
Cuối Nếu

Sau
Application.ScreenUpdating = True

End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
[Mã trang tính 1]

Private Sub Worksheet_Change (ByVal Target As Range)
Dim xCell As Range
Dim I As Long
On Error Resume Next
Application.ScreenUpdating = Sai
Đặt xCell = Target (1)
Nếu xCell.Value = Ngày thì
I = Worksheets ("CƠ HỘI OASIS ĐÃ SẮP XẾP"). UsedRange.Rows.Count
Nếu tôi = 1 thì
If Application.WorksheetFunction.CountA (Worksheets ("CƠ HỘI OASIS ĐƯỢC SẮP XẾP"). UsedRange) = 0 Thì I = 0 Kết thúc Nếu
xCell.EntireRow.Copy Worksheets ("CƠ HỘI OASIS ĐÃ SẮP XẾP"). Phạm vi ("A" & I + 1)
xCell.EntireRow.Delete
Cuối Nếu
Application.ScreenUpdating = True
End Sub

Hy vọng ở trên sẽ giúp được nhưng tôi không phải là dân VBA do đó không hiểu làm thế nào để làm cho mã làm những gì tôi cần. Sự giúp đỡ của bạn sẽ được trân trong.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Có một lỗi lớn trong tập lệnh của bạn!

Giả sử rằng bạn phát hiện thấy hàng 7 có từ "Xong" trong cột C, vì vậy bạn sao chép nó và xóa hàng.
Sau khi bạn xóa hàng, hàng tiếp theo trong danh sách sẽ là hàng 9 chứ không phải 8, vì khi bạn xóa dòng thứ 7, bây giờ nội dung dòng thứ 8 ở dòng 7 và tất cả các dòng đều tăng lên 1 hàng. Vì vậy, hàng tiếp theo để kiểm tra được cho là hàng # 8, nhưng bây giờ nó chứa dữ liệu trước đó ở hàng # 9, vì vậy mỗi khi bạn xóa một hàng, bạn thực sự đang bỏ qua một hàng để kiểm tra !!!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Shau ​​Alon thân mến,

Cảm ơn bình luận của bạn. Mã đã được cập nhật với lỗi đã được sửa. Cảm ơn bạn rất nhiều cho trợ lý của bạn.

Trân trọng, Crystal
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi nghĩ điều này đang xảy ra với tôi, nó cứ sao chép lặp đi lặp lại cùng một hàng mặc dù nó nói rằng mã đã được cập nhật. Đây là những gì tôi có:

Sub Cheezy ()
'Cập nhật bởi Kutools cho Excel 2017/8/28
Dim xRg theo phạm vi
Dim xCell As Range
Dim I As Long
Dim J As Long
Mờ K Như Lâu
I = Worksheets ("MUA HÀNG"). UsedRange.Rows.Count
J = Worksheets ("Kho lưu trữ mua"). UsedRange.Rows.Count
Nếu J = 1 Thì
Nếu Application.WorksheetFunction.CountA (Worksheets ("Kho lưu trữ mua"). UsedRange) = 0 Thì J = 0
Cuối Nếu
Đặt xRg = Worksheets ("PURCHASE FORCAST"). Phạm vi ("H3: H" & I)
On Error Resume Next
Application.ScreenUpdating = Sai
Đối với K = 1 Đến xRg.Count
Nếu CStr (xRg (K) .Value) = "Có" Thì
xRg (K) .EntireRow.Copy Destination: = Worksheets ("Mua lưu trữ"). Phạm vi ("A" & J + 1)
xRg (K) .EntireRow.Delete
Nếu CStr (xRg (K) .Value) = "Có" Thì
K = K - 1
Cuối Nếu
J = J + 1
Cuối Nếu
Sau
Application.ScreenUpdating = True
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Hi Fred,
Mỗi lần bạn chạy mã, mã sẽ tìm kiếm phạm vi được chỉ định, vì vậy nó sao chép lặp đi lặp lại cùng một hàng vì nó không thể biết hàng nào đã được sao chép. Để tránh sao chép lặp lại cùng một hàng, bạn có thể để mã chạy tự động khi nhập giá trị khớp vào ô đã chỉ định.
Trong trang tính có tên "MUA HÀNG", nhấp chuột phải vào tab trang tính và nhấp vào Mã Chế độ xem từ menu ngữ cảnh. Sau đó sao chép mã VBA sau trong cửa sổ Trang tính (Code).

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updated by Kutools for Excel 20220830
Dim xRg As Range
Dim xCell As Range
Dim I As Long
Dim J As Long
Dim K As Long
I = Worksheets("PURCHASE FORCAST").UsedRange.Rows.Count
J = Worksheets("Purchase Archive").UsedRange.Rows.Count
If J = 1 Then
If Application.WorksheetFunction.CountA(Worksheets("Purchase Archive").UsedRange) = 0 Then J = 0
End If
Set xRg = Worksheets("PURCHASE FORCAST").Range("H3:H" & I)
On Error Resume Next
Application.ScreenUpdating = False
For K = 1 To xRg.Count
If CStr(xRg(K).Value) = "Yes" Then
xRg(K).EntireRow.Copy Destination:=Worksheets("Purchase Archive").Range("A" & J + 1)
xRg(K).EntireRow.Delete
If CStr(xRg(K).Value) = "Yes" Then
K = K - 1
End If
J = J + 1
End If
Next
Application.ScreenUpdating = True
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Ai đó có thể giúp tôi làm cho công việc này? Tôi đã cố gắng thay đổi phần cần khớp với tệp của mình, nhưng điều này xuất hiện và tôi không chắc phải làm gì.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
nó cho biết tệp không được hỗ trợ khi tôi cố gắng tải lên tệp excel. Xin lỗi ... hôm nay phải vật lộn với chuyện này.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi muốn được trợ giúp cho một nhiệm vụ tương tự, nhưng hơi khác một chút. Tôi có 5 cột số, khoảng 25000 mỗi cột, mỗi cột có tiêu đề 1-5. Tôi muốn sao chép toàn bộ hàng sang trang tính khác nếu giá trị của cột 1 lớn hơn 2, HOẶC cột 3 lớn hơn 4 , HOẶC cột 5 nhỏ hơn XNUMX, HOẶC cột XNUMX lớn hơn năm HOẶC cột XNUMX lớn hơn hai, v.v. điều này có khả thi không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
tải lên hình ảnh không hoạt động ... xin lỗi.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào bạn,
Vui lòng sử dụng nút tải lên của cái này.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Vì vậy, mục đích là để xem liệu có bất kỳ khí nào vượt quá giới hạn mà tôi sẽ đặt trong công thức hay không, toàn bộ trứng sẽ được SAO CHÉP sang một trang tính mới.

Cảm ơn bạn rất nhiều về mọi mặt.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Hình ảnh đính kèm
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Michael thân mến,
Có thể bạn có thể giải quyết vấn đề này bằng cách sử dụng bổ trợ Excel. Ở đây tôi đề xuất cho bạn tiện ích Chọn ô cụ thể của Kutools cho Excel. Với tiện ích này, bạn có thể dễ dàng chọn tất cả các hàng trong một dải xác nhận nếu giá trị của một cột được chỉ định lớn hơn hoặc nhỏ hơn một số. Sau khi chọn tất cả các hàng cần thiết, bạn có thể sao chép và dán chúng vào một trang tính mới theo cách thủ công. Xem hình ảnh đính kèm bên dưới.

Bạn có thể biết thêm về tính năng này bằng cách truy cập siêu liên kết bên dưới.
https://www.extendoffice.com/product/kutools-for-excel/excel-select-specific-cells-rows.html
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
cảm ơn vì công thức này, nhưng tôi gặp sự cố là khi tôi muốn di chuyển hàng sang trang tính khác, nó không tự động xảy ra. bạn có thể cho tôi một công thức khác được không? vì vậy bất cứ khi nào tôi thay đổi giá trị của ô, nó sẽ tự động di chuyển.


cảm ơn
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Janang thân mến,
Liều mã không xảy ra tự động cho đến khi bạn kích hoạt nút chạy theo cách thủ công.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,

Tôi muốn thiết lập macro này nhưng có 2 đối số. Tôi đã quản lý để macro hoạt động trong tệp của mình dựa trên giá trị của các ô trong cột O. Tuy nhiên, tôi muốn Macro kiểm tra xem Cột S có được điền (hoặc <> "") hay không trước khi di chuyển hàng . Cuối cùng, tôi cũng muốn các hàng được sao chép có cùng định dạng với các hàng trong trang tính thứ hai. Điều đó có thay đổi hoàn toàn vĩ mô không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Gửi Hugues,
Tôi không biết liệu tôi có hiểu bạn đúng cách hay không. Ý bạn là nếu ô trong cột S được điền và ô trong cột O chứa giá trị nhất định cùng một lúc, thì hãy di chuyển hàng với định dạng? Nếu không, không di chuyển?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Crystal,

Vâng, đó là chính xác những gì tôi muốn nói. Trên thực tế, dữ liệu của tôi là về các dự án. Cột O của tôi là trạng thái dự án của tôi và S là ngày kết thúc dự án của tôi.
Tôi muốn người dùng của mình, những người có thông tin và sẽ cần chèn thông tin đó, chỉ có thể "Lưu trữ" một dự án nếu họ có trạng thái là "Đã đóng" và họ đã chèn "Ngày kết thúc".


Tôi hy vọng điều này sẽ giúp làm sáng tỏ mọi thứ
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Gửi Hugues,
Xin lỗi vì đã trả lời muộn. Mã VBA sau đây có thể giúp bạn giải quyết vấn đề. Vui lòng làm theo các bước trong bài viết này để áp dụng tập lệnh VBA.

Sub MoveRowBasedOnCellValue ()
Dim xRgStatus dưới dạng phạm vi
Dim xrgdate là phạm vi
Dim I As Long
Dim J As Long
Mờ K Như Lâu
I = Worksheets ("Sheet1"). UsedRange.Rows.Count
J = Worksheets ("Sheet2"). UsedRange.Rows.Count
Nếu J = 1 Thì
Nếu Application.WorksheetFunction.CountA (Worksheets ("Sheet2"). UsedRange) = 0 Thì J = 0
Cuối Nếu
Đặt xRgStatus = Worksheets ("Sheet1"). Phạm vi ("O1: O" & I)
Đặt xRgDate = Worksheets ("Sheet1"). Phạm vi ("S1: S" & I)
On Error Resume Next
Application.ScreenUpdating = Sai
Application.CutCopyMode = Sai
xRgStatus (1) .EntireRow.Copy
Worksheets ("Sheet2"). Phạm vi ("A" & J + 1) .PasteSpecial xlPasteAllUsingSourceTheme
J = J + 1
Đối với K = 2 Đến xRgStatus.Count
Nếu CStr (xRgStatus (K) .Value) = "Đã đóng" Thì
If (xRgDate (K) .Value <> "") And (TypeName (xRgDate (K) .Value) = "Date") Thì
xRgStatus (K) .EntireRow.Copy
Worksheets ("Sheet2"). Phạm vi ("A" & J + 1) .PasteSpecial xlPasteAllUsingSourceTheme
J = J + 1
Cuối Nếu
Cuối Nếu
Sau
Ứng dụng.CutCopyMode = True
Application.ScreenUpdating = True
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Kính gửi Crystal,

Cảm ơn bạn rất nhiều vì đã giúp đỡ của bạn!

Trân trọng,

Hugues
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào bạn,


Làm cách nào để sao chép các hàng thay vì di chuyển chúng?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào bạn,


Tôi biết điều này đã được đăng một vài lần nhưng tôi không thể tìm thấy câu trả lời. Làm cách nào để tôi có thể sao chép tài liệu sang trang tính mới và KHÔNG xóa tài liệu đó khỏi trang tính gốc?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Mike thân mến,
Nếu bạn muốn sao chép các hàng thay vì xóa chúng, mã VBA dưới đây có thể giúp bạn. Cảm ơn bình luận của bạn!

Sub Cheezy ()
Dim xRg theo phạm vi
Dim xCell As Range
Dim I As Long
Dim J As Long
Mờ K Như Lâu
I = Worksheets ("Sheet1"). UsedRange.Rows.Count
J = Worksheets ("Sheet2"). UsedRange.Rows.Count
Nếu J = 1 Thì
Nếu Application.WorksheetFunction.CountA (Worksheets ("Sheet2"). UsedRange) = 0 Thì J = 0
Cuối Nếu
Đặt xRg = Worksheets ("Sheet1"). Phạm vi ("C1: C" & I)
On Error Resume Next
Application.ScreenUpdating = Sai
Đối với K = 1 Đến xRg.Count
Nếu CStr (xRg (K) .Value) = "Xong" Thì
xRg (K) .EntireRow.Copy Destination: = Worksheets ("Sheet2"). Range ("A" & J + 1)
J = J + 1
Cuối Nếu
Sau
Application.ScreenUpdating = True
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,

Tôi mới sử dụng macro, có thể dán dữ liệu bên dưới sau một giá trị nhất định và sẽ được lặp lại cho đến cuối cột không?
Thích bài viết này:

Chuyển "Blue" sau "Color"

A1 = Xanh lam
A5 = Màu
A6 = (chuyển "Blue" tại đây)
và như thế...
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
John thân mến,
Ý của bạn là nếu một ô chứa "Màu" trong một cột, sau đó sao chép văn bản của ô đầu tiên sang ô bên dưới ô "Màu" và lặp lại sao chép văn bản này cho đến cuối cột?
Không có bình luận nào được đăng ở đây
Tải thêm
Để lại ý kiến ​​của bạn
Đăng với tư cách khách
×
Đánh giá bài viết này:
0   Nhân vật
Các vị trí được đề xuất

Kết nối với chúng tôi

Bản quyền © 2009 - www.extendoffice.com. | Đã đăng ký Bản quyền. cung cấp bởi ExtendOffice. | BẢN ĐỒ CHI NHÁNH
Microsoft và logo Office là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Microsoft Corporation tại Hoa Kỳ và / hoặc các quốc gia khác.
Được bảo vệ bởi Sectigo SSL