Giúp đỡ: Lỗi về code Copy dữ liệu trong Excel (1 người xem)

  • Thread starter Thread starter KVP
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

KVP

Thành viên thường trực
Tham gia
7/7/07
Bài viết
218
Được thích
301
Nghề nghiệp
Cộng đồng
Mã:
Sub nhapphieu()
Dim dlieu As Range, s_dv As Range
On Error Resume Next
Set dlieu = Sheets("P_inthe").Range("b11:c19")
dlieu.Select
Selection.Copy
Set s_dv = Sheets("slct").Range("B" & [b65000].End(xlUp).Row + 1)
s_dv.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
 
Chỉnh sửa lần cuối bởi điều hành viên:
Sub nhapphieu()
Dim dlieu As Range, s_dv As Range
On Error Resume Next
Set dlieu = Sheets("P_inthe").Range("b11:c19")
dlieu.Select
Selection.Copy
Set s_dv = Sheets("slct").Range("B" & [b65000].End(xlUp).Row + 1)
s_dv.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
Bạn viết như vậy thử xem có được không!
PHP:
Sub nhapphieu()
Sheets("slct").Range("B" & Sheets("slct").[B65000].End(xlUp).Row + 1 & ":C" & Sheets("slct").[B65000].End(xlUp).Row + 1).Value = Sheets("P_inthe").Range("b11:c19").Value
End Sub
THAO.
 
Lần chỉnh sửa cuối:
Upvote 0
Mình thử thu dùm bạn cái này & chạy tốt đây

PHP:
Option Explicit
Sub NhapPhieu()
 Dim Rng As Range
 Sheets("P_InThe").Select
 Set Rng = Range("B11:C19")
 Rng.Copy
    Sheets("SlCt").Select
    Range("B65500").End(xlUp).Offset(1).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
End Sub

(Tất nhiên có chỉnh lý!)
 
Upvote 0
Bạn thay 2 dòng lệnh
Mã:
dlieu.Select
Selection.Copy
bằng 1 dòng lệnh
Mã:
dlieu.Copy
là được thôi.
 
Lần chỉnh sửa cuối:
Upvote 0
Cho mình hỏi tại sao thủ tục trên chạy lần thứ 2 thì không đúng y mình nữa. đặt chuột đâu là nó copy vào đó liền. Mình cố gắng upload File lên nhưng không được
 
Upvote 0
Mình thấy thủ tục chạy được đấy chứ.
Mã:
Sub nhapphieu()
Dim dlieu As Range, s_dv As Range
On Error Resume Next
Set dlieu = Sheets("P_inthe").Range("b11:c19")
dlieu.Copy
Set s_dv = Sheets("slct").Range("B" & [b65000].End(xlUp).Row + 1)
s_dv.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
 
Upvote 0
Nvson xem giúp mình file dính kèm xem sao. Mình thử lại vẫn thấy vậy. Chạy lần thứ 2 là không đúng nữa
 
Lần chỉnh sửa cuối:
Upvote 0
Up file dùm bạn kieuvietphuong

Đáng lẽ chỉ up dùm file, nhưng ngứa tay lại sửa luôn rồi.
Lỗi do Selection.Paste mà trước đó chưa select sheet "SLCT"
Thêm câu lệnh select vào là OK
 

File đính kèm

Upvote 0
CHo mình hỏi. File upload của mình (worksheets("inthe")) có công thức, hoặc không đủ dữ liệu cho vùng chọn thì thủ tục không chạy theo ý mình. Nó bỏ dòng trống theo vùng chọn. Có cách nào giải quyết vấn đề này không hay phải chọn vùng hợp lý.
 
Upvote 0
Em hỏi thế thì không trả lời được:
- không đủ dữ liệu cho vùng chọn: vùng chọn nào? vùng copy hay vùng paste? thiếu dữ liệu ở trên, hay ở dưới, hay ở giữa?
- thủ tục không theo ý mình: là nó bị như thế nào? copy hết vùng, paste không hết? hay sao?
- Nó bỏ trống theo vùng chọn: lại vùng chọn! vùng nào? vùng copy hay vùng paste?

Hay em nêu lên như thế này:
1. dữ liệu sheet inthe chỉ có từ dòng số ... đến dòng số... và có hoặc không có cách quãng, có cách quãng dòng số ...
2. khi nhấn nút nó paste qua sheet SLCT vào dòng số..., lẽ ra nó phải là dòng số ... hoặc lẽ ra nó phải vào dòng cuối mà lại cách quãng ra bằng này dòng ....
....
Có vậy mới giải quyết được. Thực tế anh thử nhiều cách khác nhau nhưng vẫn thấy đúng. Nếu cách quãng là do em nhập liệu sheet inthe cách quãng.
 
Upvote 0
Anh nói chẳnge sai chỗ nào. Các anh hiểu rât rõ những người mới học VBA. Em sẽ rút kinh nghiệm. Anh ạ, vùng dữ liệu copy (Sheet inthe) của em khi dữ liệu không đủ ở các dòng thì paste sang sheet SLCT lần thư 2 trở đi thì có dòng trống ở giữa. Như vậy, thì vùng dữ liệu chọn phải là vùng động hay là có cách copy nào bỏ dòng trống không anh
 
Upvote 0
Em sửa code như sau:
PHP:
Sub nhapphieu()
Dim dlieu As Range, s_dv As Range
On Error Resume Next
Set dlieu = Sheets("P_inthe").Range("a11:b19")
 1   Range("A11:H19").Select
 2   Selection.AutoFilter Field:=1, Criteria1:="<>"
    dlieu.Copy
    Sheets("slct").Select
Set s_dv = Sheets("slct").Range("B" & [b65000].End(xlUp).Row + 1)
    s_dv.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Application.CutCopyMode = False
Sheets("P_inthe").Select
  3  Selection.AutoFilter
End Sub

Thêm 3 dòng có đánh số.
 
Upvote 0
xin code copy

Bạn viết như vậy thử xem có được không!
PHP:
Sub nhapphieu()
Sheets("slct").Range("B" & Sheets("slct").[B65000].End(xlUp).Row + 1 & ":C" & Sheets("slct").[B65000].End(xlUp).Row + 1).Value = Sheets("P_inthe").Range("b11:c19").Value
End Sub
THAO.

Em copy code như vậy mà làm không được, anh/ chị có đoạn code nào mới không cho em xin với ạ?
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom