Gỡ lỗi macro Excel 2000

Gỡ lỗi macro Excel 2000

Mong mọi người giúp đỡ về macro bên dưới. Macro sắp xếp rồi di chuyển một hàng (Nut) vào Store. Các hàng cần di chuyển có dấu X trong hàng. Các hàng khác không có dấu X vẫn giữ nguyên vị trí. Nó hoạt động cho một hàng nhưng tôi không thể tìm ra cách lặp lại để di chuyển tất cả các hàng cho đến khi không còn dấu X để di chuyển nữa.

Macro phụ1()
'
' Macro1 Macro
' Macro ghi lại ngày 20/11/2010 bởi Gerald Cornell
'
' Phím tắt: Ctrl+e
'
'

'
Macro phụ10()
Phạm vi ("OSCHQS"). Chọn
Selection.Sort Key1:=Phạm vi("D9:D35"), Thứ tự1:=xlTăng dần,
Tiêu đề:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Định hướng:= _
xlTopToBottom
Tham khảo Application.Goto:="BẮT ĐẦU"
Cells.Find(What:="xxx", After:=ActiveCell, LookIn:=xlFormulas,
_
LookAt:=xlPart, SearchOrder:=xlByColumns,
Hướng tìm kiếm:=xlTiếp theo _
, MatchCase:=False).Kích hoạt
Tham khảo Application.Goto:="BẮT ĐẦU"
ActiveCell.Offset(0, -6).Range("A9:H9").Chọn
ActiveWorkbook.Names.Add Name:="NUTS", ReferencesToR1C1:= _
"=UNPDCHQS!R9C1:R9C8"
Tham khảo Application.Goto:="CỬA HÀNG"
Lựa chọn.Toàn bộRow.Insert
Tham khảo Application.Goto:="NUTS"
Lựa chọn.Sao chép
Tham khảo Application.Goto:="CỬA HÀNG"
ActiveCell.Offset(-1, 0).Range("A1:H1").Chọn
ActiveSheet.Paste
Tham khảo Application.Goto:="CỬA HÀNG"
ActiveCell.Offset(-1, 0).Range("G1").Chọn
Application.CutCopyMode = Sai
Lựa chọn.ClearContents
ActiveCell.Offset(-3, 0).Range("G1").Chọn
Lựa chọn.Toàn bộRow.Insert
Tham khảo Application.Goto:="NUTS"
Application.CutCopyMode = Sai
Lựa chọn.Toàn bộRow.Delete
ActiveWorkbook.Names("NUTS").Xóa
Kết thúc phụ


Hy vọng điều này sẽ giúp ích, Gerry Cornell


Trả lời:

Bạn sử dụng bộ lọc tự động để tìm tất cả các ô có xxx trong cột G, sau đó cắt tất cả các hàng có ô hiển thị trong cột G và dán vào bảng tính đích.

Dựa trên mã của bạn, tôi nghĩ điều này sẽ làm được:

Sub MoveNuts()
Bộ lọc mờRng dưới dạng phạm vi
Dim CutRng As Range
Dim DestRng As Range

Phạm vi("OSCHQS").Khóa sắp xếp1:=Phạm vi("D9"), Thứ tự1:=xlTăng dần, Tiêu đề:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Đặt FilterRng = Range("G1", Range("G" & Rows.Count).End(xlUp))
Đặt CutRng = FilterRng.Offset(1)
Đặt DestRng = Worksheets("StoreSh").Range("A" & Rows.Count).End(xlUp).Offset(1) 'thay đổi tên bảng tính cho phù hợp

Trường FilterRng.AutoFilter:=1, Tiêu chí1:="xxx"
CutRng. SpecialCells(xlCellTypeVisible).EntireRow.Cut Đích:=DestRng
CutRng.EntireRow.Delete
Kết thúc phụ

Trân trọng,
mỗi



Trả lời:

mỗi

Cần thêm trợ giúp xin vui lòng?

Đề xuất của bạn không thành công ở dòng này.

Đặt DestRng = Worksheets("StoreSh").Range("A" & Rows.Count).End(xlUp).Offset(1) 'thay đổi tên bảng tính cho phù hợp

Cửa hàng là một Phạm vi được đặt tên trong cùng một bảng tính. Nó nằm trên một hàng duy nhất, cột A đến H.

TIA


Gerry Cornell

Trả lời:

Sau đó, điều này sẽ làm điều đó:

Đặt DestRng=Range("Store") 'Lưu ý rằng Store phải tham chiếu đến một ô duy nhất, tức là A2, vì macro cắt nhiều hàng

mỗi



Trả lời:

Vì nó không đề cập đến một ô duy nhất như OP đã nêu, nên có lẽ

Đặt DestRng = Range("Store").EntireRow

hoặc

Đặt DestRng = Phạm vi("Store")(1)


--
Tom Ogilvy
lưu ý: Nếu bạn nhận được câu trả lời cho câu hỏi của mình - vui lòng đánh dấu câu trả lời đó hoặc các câu trả lời để người khác biết câu hỏi đã được trả lời.


Comments

Popular posts from this blog

Excel 2016 - mở tất cả các tệp trong MỘT phiên bản

Điều tôi muốn làm trong Excel 2010 là tạo một nút tùy chỉnh và gắn nó vào thanh công cụ Truy nhập nhanh và chạy một macro cụ thể.

Khẩn cấp - File Excel chứa các ký tự đặc biệt ở họ và tên liên hệ