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
Post a Comment