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 xuống cuối trang tính hiện hoạt dựa trên giá trị ô trong Excel?

Để di chuyển toàn bộ hàng xuống cuối trang tính hiện hoạt dựa trên giá trị ô trong Excel, vui lòng thử mã VBA trong bài viết này.

Di chuyển toàn bộ hàng xuống cuối trang tính hiện hoạt dựa trên giá trị ô có mã VBA


Di chuyển toàn bộ hàng xuống cuối trang tính hiện hoạt dựa trên giá trị ô có mã VBA

Ví dụ: như ảnh chụp màn hình bên dưới được hiển thị, nếu một ô trong cột C chứa một giá trị nhất định “Xong”, thì hãy di chuyển toàn bộ hàng xuống cuối trang tính hiện tại. Hãy làm như 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. bên trong Microsoft Visual Basic cho các ứng dụng cửa sổ, nhấp Chèn > Mô-đun. Sau đó sao chép và dán mã VBA bên dưới vào cửa sổ.

Mã VBA: Di chuyển toàn bộ hàng xuống cuối trang tính hiện hoạt dựa trên giá trị ô

Sub MoveToEnd()
    Dim xRg As Range
    Dim xTxt As String
    Dim xCell As Range
    Dim xEndRow As Long
    Dim I As Long
    On Error Resume Next
    If ActiveWindow.RangeSelection.Count > 1 Then
      xTxt = ActiveWindow.RangeSelection.AddressLocal
    Else
      xTxt = ActiveSheet.UsedRange.AddressLocal
    End If
lOne:
    Set xRg = Application.InputBox("Select range:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    If xRg.Columns.Count > 1 Or xRg.Areas.Count > 1 Then
        MsgBox " Multiple ranges or columns have been selected ", vbInformation, "Kutools for Excel"
        GoTo lOne
    End If
    xEndRow = xRg.Rows.Count + xRg.Row
    Application.ScreenUpdating = False
    For I = xRg.Rows.Count To 1 Step -1
        If xRg.Cells(I) = "Done" Then
           xRg.Cells(I).EntireRow.Cut
           Rows(xEndRow).Insert Shift:=xlDown
        End If
    Next
    Application.ScreenUpdating = True
End Sub

Chú thích: Trong mã VBA, “Thực hiện”Là giá trị ô mà bạn sẽ di chuyển toàn bộ hàng dựa trên. Bạn có thể thay đổi nó khi bạn cần.

3. Nhấn nút F5 phím để chạy mã, sau đó trong cửa sổ bật lên Kutools cho Excel hộp thoại, chọn phạm vi cột có giá trị nhất định, sau đó nhấp vào OK .

Sau khi nhấp vào OK , toàn bộ hàng có chứa giá trị “Xong” trong cột được chỉ định sẽ tự động được chuyển xuống cuối dải dữ liệu.


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 (28)
Xếp hạng 4.75 trong 5 · xếp hạng 2
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Làm thế nào tôi có thể làm cho nó để các kutools chọn các hàng cụ thể mà không cần người dùng nhập?
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 Anon,
Tôi xin lỗi, tôi không chắc ý của bạn. Sẽ rất tuyệt nếu bạn có thể giải thích lại hoặc cung cấp ảnh chụp màn hình để hiển thị những gì bạn đang cố gắng làm.
Cám ơn bạn đã góp ý.
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, mã này hoạt động tốt, cảm ơn bạn. Tôi muốn di chuyển tất cả các hàng có chứa từ "Hoàn thành" trong cột D lên đầu bảng (chèn vào hàng 3). Điều đó có thể không? thì tôi muốn xóa tất cả các hàng hoàn chỉnh có chứa "ngày hôm qua" trong cột 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 gần như hoàn hảo cho những gì tôi muốn. Tôi có một phần yêu cầu giống như Anon phải làm cho nó hoạt động mà không cần người dùng nhập cùng với một số tính năng bổ sung.

Tôi đang tự hỏi liệu có thể có cột duy nhất được tìm kiếm là i4 đến i50 và nó có tự động chạy khi mở hoặc bất cứ lúc nào cột i được chỉnh sửa hay không. Ngoài ra, nếu có thể di chuyển các hàng xuống cuối trang tính mà không có bất kỳ hàng trống nào giữa các hàng "đã hoàn thành" và các hàng "không". Hiện tại, nếu tôi chọn i4: i50 và nếu tôi chỉ có dữ liệu đến hàng 25, nó sẽ dán các hàng "đã hoàn thành" tăng dần từ hàng 50 thay vì hàng 25. Số hàng trong trang tính của tôi liên tục thay đổi và không nên hơn 50. Cảm ơn sự 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
Xin chào Brandon,
Xin lỗi có thể giúp bạn với điều đó. Cảm ơn bình luận 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, có cách nào để điều chỉnh điều này để nó di chuyển một hàng ở nơi khác trong cùng một trang tính ngoài phần cuối không? Tôi có một trang tính có thông tin đơn đặt hàng cho các đơn đặt hàng đã ghi ngày tháng và các đơn đặt hàng sắp tới chưa được ghi ngày tháng và tôi có nó để khi tôi đặt dấu "X" trong cột A, mọi thứ sẽ nổi bật và in đậm tùy thuộc vào phần # và địa điểm giao hàng. Bây giờ tôi phải thực hiện cắt và dán ngày mới (ngày giao hàng) sao cho vừa vặn ở trên cùng được sắp xếp theo ngày (từ ngày 1 đến cuối tháng). Tôi đã có thể định dạng có điều kiện mọi thứ cho đến thời điểm này, nhưng tôi không nghĩ rằng mình có thể di chuyển các hàng theo cách đó. Tôi đã tự hỏi liệu VBA có thể làm điều này, di chuyển một hàng khi một ngày được nhập để phù hợp với các hàng ngày khá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
Xin chào, cách duy nhất tôi có thể làm cho điều này hoạt động là nếu tôi "chạy" macro trong màn hình phụ Visual Basic. Có thể để mã VBA này tự động chạy sau khi người dùng nhập "Hoàn tất" không? Mỗi lần tôi nhận được hộp thoại Kutools cho Excel bật lên để hỏi các thông số mà tôi đang yêu cầu mã để tìm kiếm. Tôi đã giải quyết vấn đề này bằng cách thay thế: xTxt = ActiveSheet.UsedRange.AddressLocal bằng các tham số tôi cần tìm kiếm và nhấn enter. Nhưng sẽ thuận tiện hơn nếu nó tự động thực hiện các thay đổi sau khi "Xong" được nhập. Cảm ơn 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
Chào Anon,
Mã VBA dưới đây có thể giúp bạn. Xin vui lòng có một thử.
Vui lòng nhấp chuột phải vào tab trang tính (trang tính chứa dữ liệu bạn sẽ chuyển xuống dưới cùng), chọn Mã Chế độ xem từ trình đơn ngữ cảnh và sao chép mã bên dưới vào cửa sổ Mã.

Private Sub Worksheet_Change (ByVal Target As Range)
'Cập nhật Extendoffice 20190925
Dim xRg theo phạm vi
Dim xIRg As Range
Làm mờ xTxt dưới dạng chuỗi
Dim xCell As Range
Dim xEndRow miễn là dài
Dim I As Long
Làm mờ xDStr dưới dạng chuỗi
On Error Resume Next
xDStr = "C: C"
Đặt xRg = Me.Range (xDStr)
Đặt xIRg = Application.Intersect (Target, xRg)
Nếu xIRg không có gì thì thoát Sub
Application.ScreenUpdating = Sai
Application.EnableEvents = Sai

If Target = "Done" Sau đó
xEndRow = ActiveSheet.UsedRange.Rows.Count + 1
Target.EntireRow.Cut
Hàng (xEndRow). Chèn Shift: = xlDown
Cuối Nếu
Ứng dụng.EnableEvents = 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
Chào pha lê,

Cảm ơn bạn đã đăng mã này. Tôi muốn biết cách lấy mã để di chuyển hàng trở lại đầu trang nếu Nhập xong bị lỗi. Có thể thêm mã phụ cho "chuyển" để chuyển mã lên trên cùng và "hoàn tất" cho dưới cùng 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
xin chào pha lê, mã u đã đưa cho anon để mã chạy vba tự động là rất tốt nhưng tôi không thể chèn một trang các hàng có cách nào có thể để sửa nó 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
Chào sarah,
Xin lỗi vì sự bất tiện. Vui lòng thử VBA bên dưới. Thanks.

Private Sub Worksheet_Change (ByVal Target As Range)

'Cập nhật Extendoffice 20200424

Dim xRg theo phạm vi

Dim xIRg As Range

Làm mờ xTxt dưới dạng chuỗi

Dim xCell As Range

Dim xEndRow miễn là dài

Dim I As Long

Làm mờ xDStr dưới dạng chuỗi

Về lỗi GoTo Err1

xDStr = "C: C"

Đặt xRg = Me.Range (xDStr)

Đặt xIRg = Application.Intersect (Target, xRg)

Nếu xIRg không có gì thì thoát Sub

Application.ScreenUpdating = Sai

Application.EnableEvents = Sai



If Target.Value = "Done" Sau đó

'xEndRow = ActiveSheet.UsedRange.Rows.Count + 1

xEndRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Row + 1

Target.EntireRow.Cut

Hàng (xEndRow). Chèn Shift: = xlDown

Cuối Nếu

Lỗi1:

Ứng dụng.EnableEvents = 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
Tôi đã cố gắng sao chép mã này nhưng nó tiếp tục thông báo việc sử dụng Tôi không hợp lệ.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Điều gì sẽ xảy ra nếu bạn chỉ cần di chuyển các hàng dưới Cột A và B; thì Cột C nên giữ lại? chúng ta vẫn nên sử dụng EntireRow?
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 Jerel,
Hãy thử đoạn mã dưới đây. Hy vọng tôi có thể giúp đỡ.

Sub MoveToEnd ()

'Cập nhật Extendoffice 20200717

Dim xRg theo phạm vi

Làm mờ xTxt dưới dạng chuỗi

Dim xCell As Range

Dim xEndRow miễn là dài

Dim xIntR dưới dạng số nguyên

Dim I As Long

Làm mờ xWs dưới dạng trang tính

On Error Resume Next

Nếu ActiveWindow.RangeSelection.Count> 1 Thì

xTxt = ActiveWindow.RangeSelection.AddressLocal

Khác

xTxt = ActiveSheet.UsedRange.AddressLocal

Cuối Nếu

lMột:

Đặt xRg = Application.InputBox ("Chọn phạm vi:", "Kutools cho Excel", xTxt,,,, 8)

Nếu xRg không có gì thì thoát Sub

Nếu xRg.Columns.Count> 1 Hoặc xRg.Areas.Count> 1 Thì

MsgBox "Nhiều phạm vi hoặc cột đã được chọn", vbInformation, "Kutools cho Excel"

GoTo lOne

Cuối Nếu

xEndRow = xRg.Rows.Count + xRg.Row

xWs = xRg.Bảng tính

xWs.Kích hoạt

Application.ScreenUpdating = Sai

Đối với I = xRg.Rows.Count đến 1 bước -1

Nếu xRg.Item (I) = "Xong" Thì

Rows (xEndRow) .Insert Shift: = xlDown, CopyOrigin: = xlFormatFromLeftOrAbove

xIntR = xRg.Cells (I) .Row

Phạm vi ("A" & xIntR & ": B" & xIntR). Chọn

Lựa chọn.Cut

Phạm vi ("A" & xEndRow). Chọn

ActiveSheet.Paste

xEndRow = xEndRow + 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 bạn,



Tôi đang gặp sự cố khi sử dụng mã được cung cấp và tiếp tục nhận được lỗi cú pháp. Tôi là người siêu mới để trở nên nổi trội và đang cố gắng tự dạy những gì tôi cần để điều hành công việc kinh doanh tại nhà của mình. Tôi có id bảng tính khoảng không quảng cáo muốn có thể chỉ định các mục trong một cột là ĐÃ ĐƯỢC XẾP LẠI? có / không và nếu có, chúng di chuyển xuống cuối trang tính, theo thứ tự bảng chữ cái, không để lại khoảng trống trong trang tính trải chính. chúng tôi có các mặt hàng ngừng hoạt động hoàn toàn và sau đó quay trở lại để tái phát hành đặc biệt với số lượng hạn chế và id như các mặt hàng này được lưu trữ ở cuối trang tính của tôi cho đến khi chúng có sẵn trở lại. Cảm ơn 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, tôi có một nhiệm vụ mà sếp của tôi đã giao cho tôi. Lúc đầu nó có vẻ đơn giản nhưng bây giờ tôi đang bối rối không biết làm thế nào để tiếp tục. Chúng tôi có một bảng Dự báo về các công việc có thể làm và chúng có cột "Xác suất Đơn hàng" theo%. Anh ấy muốn tôi thiết lập 3 trang tính khác nhau với 100-70%, 69% -41 và 40-0%. Ý tưởng là khi thông tin được nhập không phải là trang chính, khi phần trăm được nhập vào, nó sẽ tự động được sao chép vào trang tiếp tục phù hợp với cơn thịnh nộ của phân vị đó. Tôi đã làm điều này với IF đơn giản (và công thức. Tuy nhiên, tôi cần sắp xếp inorder để loại bỏ các ô trống và làm cho nó trông sạch sẽ hơn. Sau đó, khi tôi sắp xếp, nếu tôi thêm ưu đãi Xác suất Oder mới vào trang tính chính, nó không tự động hiển thị nó mà không cần hủy sắp xếp rồi sắp xếp lại. Tôi xin lỗi nếu câu hỏi này không thuộc về cô ấy. Nhưng có chuỗi mã nào mà tôi có thể đưa vào sẽ xử lý vấn đề này dễ dàng hơn không? Giá trị duy nhất xác định xem toàn bộ hàng có được di chuyển hay không là Cột K. có vẻ đơn giản nhưng lại phức tạp đối với người mới bắt đầu sử dụng excel này. Cảm ơn bạn đã giúp đỡ 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
Làm như thế nào nếu "Xong" chỉ là một phần của chuỗi cột. Giả sử Cột của tôi chứa giá trị như - XYZDone, ABCDone, 123Done, v.v., tôi có thể chỉ lọc ra dựa trên một phần chuỗi "Xong" 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
Xin chào Crystal,
Cảm ơn sự giúp đỡ của bạn, mã hoạt động tốt nhưng thay vì di chuyển hàng xuống cuối trang, làm cách nào để tôi chuyển nó sang tab khác, tức là tab "Đã đó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,
Xin lỗi vì đã trả lời muộn.
Trong đoạn mã, bạn chỉ cần thay đổi dòng "If xRg.Cells (I) = "Done" Sau đó"Để Nếu xRg.Cells (I) Thích "* Xong *" Thì để hoàn thành nó
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 có một danh sách với các hộp kiểm mà khi một cột được chọn, tôi cần nó để chuyển đến một phần của bảng tính và nếu cột kia được chọn, thay vào đó, nó sẽ đi đến cuối. Tôi đã thử hàng trăm cách khác nhau để làm điều này. Bất cứ ai có thể giúp đỡ điều 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
Xin chào! Tôi vừa mua kutools để có thể ghi mã vba này vào trang tính excel của mình, vì nó sẽ là một tính năng tuyệt vời để sử dụng! Các hướng dẫn trên rất đơn giản và hữu ích; tuy nhiên, khi tôi đến bước mà mã được sao chép và dán trong cửa sổ và nhấn F5, nó đã đưa tôi đến một hộp để đặt tên và tạo macro. Tôi đã làm điều đó nhưng bây giờ nó sẽ không đưa tôi đến hộp thoại để tôi có thể chọn phạm vi ô. Một lỗi biên dịch của "thủ tục bên ngoài không hợp lệ" bật lên. Hãy giúp tô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,
Tôi xin lỗi vì đã đánh lừa bạn. Mã có thể được sử dụng riêng và không yêu cầu mua Kutools. Nếu bạn không cần, vui lòng gửi email đến sales @extendoffice.com để yêu cầu hoàn lại tiền.
Để mã hoạt động trơn tru, bạn cần đảm bảo rằng con trỏ của bạn đang ở trong cửa sổ mã (nhấp vào bất kỳ từ nào trong mã), sau đó nhấn F5 phím để chạy mã. Sau đó, hộp thoại để chọn một phạm vi ô sẽ bật lên.
Xin lỗi một lần nữa vì sự bất tiệ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 một lần nữa! Tôi đã tìm ra mã. Tôi đã sao chép và dán mã theo cách thủ công thay vì sử dụng nút sao chép ở trên cùng bên phải của màn hình. Tôi đã thay đổi "xong" thành "x". Tôi đã chạy mã trong mỗi trang tính. Khi tôi bắt đầu nhập "x" vào các ô đó trong phạm vi ô đã chọn từ hộp thoại, không có gì xảy ra (các hàng không tự động di chuyển xuống dưới cùng). Tôi RẤT MỚI về điều này .... cảm ơn sự 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
Chào,
Nếu bạn muốn tự động di chuyển hàng xuống dưới cùng khi nhập từ được chỉ định, vui lòng thử mã VBA sau.
Chú thích: bạn cần nhập mã vào cửa sổ Mã bảng tính (nhấp chuột phải vào tab trang tính và chọn Mã Chế độ xem từ menu ngữ cảnh).

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updated by Extendoffice 20220520
    Dim xRg As Range
    Dim xTxt As String
    Dim xCell As Range
    Dim xEndRow As Long
    Dim I As Long
    On Error Resume Next
    If ActiveWindow.RangeSelection.Count > 1 Then
      xTxt = ActiveWindow.RangeSelection.AddressLocal
    Else
      xTxt = ActiveSheet.UsedRange.AddressLocal
    End If
lOne:
    Set xRg = Range("C2:C18")
    If xRg Is Nothing Then Exit Sub
    If xRg.Columns.Count > 1 Or xRg.Areas.Count > 1 Then
        MsgBox " Multiple ranges or columns have been selected ", vbInformation, "Kutools for Excel"
        GoTo lOne
    End If
    xEndRow = xRg.Rows.Count + xRg.Row
    Application.ScreenUpdating = False
    For I = xRg.Rows.Count To 1 Step -1
        If xRg.Cells(I) = "Done" Then
           xRg.Cells(I).EntireRow.Cut
           Rows(xEndRow).Insert Shift:=xlDown
        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 Crystal,

Cảm ơn bạn cho tất cả các mã tuyệt vời. Có cách nào để làm điều này mà không có Kutools không? Tôi cũng không thấy hộp thoại để chọn một phạm vi ô, nó không xuất hiện cho tôi.

Cảm ơn bạn,
Nhạc jazz
Xếp hạng 5 trong 5
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 Jaz,
Bạn có thể chỉ định phạm vi ô trực tiếp trong mã mà không cần phải bật lên hộp thoại Kutools để chọn phạm vi.
Trong mã, vui lòng thay thế dòng sau:
Set xRg = Application.InputBox("Select range:", "Kutools for Excel", xTxt, , , , , 8)

với:
Set xRg = Range("C2:C13")
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ách nào để di chuyển các hàng trở lại vị trí ban đầu khi trạng thái của đầu vào thay đổi không? Ví dụ: nếu ai đó thay đổi nó từ "Hoàn thành" thành "chưa hoàn thành", có cách nào để lập trình excel để chuyển nó trở lại không?
Ngoài ra, thay đổi này có vĩnh viễn không? Tôi đã nhận thấy sau khi làm việc lần đầu tiên, nó đã ngừng hoạt động sau đó.

Cảm ơn bạn đã giúp đỡ của bạn và gửi bài!
Xếp hạng 4.5 trong 5
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 zô,

Cảm ơn bạn đã bình luận của bạn.
1. Đối với câu hỏi đầu tiên:
Không thể di chuyển hàng đã được di chuyển trở lại vị trí ban đầu;
2. Đối với câu hỏi thứ hai:
Mã VBA này cần được chạy thủ công mỗi khi bạn cần di chuyển hàng. Nếu bạn muốn tự động di chuyển hàng khi giá trị ô phù hợp với điều kiện, bạn có thể thử mã VBA sau.
Chú ý: Bạn cần đưa mã này vào trình soạn thảo Trang tính (Mã) (Nhấp chuột phải vào tab trang tính và chọn Xem mã để mở trình soạn thảo). Và thay đổi phạm vi cột B2:B12 thành phạm vi của riêng bạn.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updated Extendoffice 20230111
    Dim xRg As Range
    Dim xTxt As String
    Dim xCell As Range
    Dim xEndRow As Long
    Dim I As Long
    On Error Resume Next
    If ActiveWindow.RangeSelection.Count > 1 Then
      xTxt = ActiveWindow.RangeSelection.AddressLocal
    Else
      xTxt = ActiveSheet.UsedRange.AddressLocal
    End If
lOne:
    Set xRg = Range("B2:B12")
    If xRg Is Nothing Then Exit Sub
    If xRg.Columns.Count > 1 Or xRg.Areas.Count > 1 Then
        MsgBox " Multiple ranges or columns have been selected ", vbInformation, "Kutools for Excel"
        GoTo lOne
    End If
    xEndRow = xRg.Rows.Count + xRg.Row
    Application.ScreenUpdating = False
    For I = xRg.Rows.Count To 1 Step -1
        If xRg.Cells(I) = "Done" Then
           xRg.Cells(I).EntireRow.Cut
           Rows(xEndRow).Insert Shift:=xlDown
        End If
    Next
    Application.ScreenUpdating = True

End Sub
Không có bình luận nào được đăng ở đây
Để 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