hongphuong1997
Thành viên tiêu biểu
![](/diendan/data/PhoToDanhHieu/pip.gif)
- Tham gia
- 12/11/17
- Bài viết
- 771
- Được thích
- 321
- Giới tính
- Nữ
Tức là Insert copied cells đó phải không?Nhờ Thầy cô và anh chị viết code VBA Copy theo giứi hạn như file đính kèm
Em xin cảm ơn
Bác ơi, tức là mỗi lần copy thì nó đẩy các lần copy trước xuống bên dưới.Tức là Insert copied cells đó phải không?
Excel có sẵn chức năng này, cứ thế xài thôi. Muốn code, có thể record macro
Gửi bạnBác ơi, tức là mỗi lần copy thì nó đẩy các lần copy trước xuống bên dưới.
Nhưng với điều kiện là chỉ 5 lần thôi bác à
Cháu ghi macro rồi nhưng không được bác à
Tức là cháu copy sau đó insert vào thì được sau đó lại dùng động tác là xóa lần copy trước đi bác à
Sub test()
Dim Rng As Range, I As Integer
Set Rng = Range("B1:P6")
Do Until I = 5
Rng.Copy
Range("S14").Insert Shift:=xlDown
I = I + 1
Loop
Set Rng = Nothing
End Sub
Cảm ơn anhGửi bạn
Mã:Sub test() Dim Rng As Range, I As Integer Set Rng = Range("B1:P6") Do Until I = 5 Rng.Copy Range("S14").Insert Shift:=xlDown I = I + 1 Loop Set Rng = Nothing End Sub
Tôi chưa hiểu ý bạn lắm.Cảm ơn anh
Anh ơi không phải là copy 1 lúc 5 lần như vậy anh à
Copy từng lần 1. mỗi lần copy thì lần copy sau sẽ đứng bên trên lần copy trước đó
Và nó đẩy lần copy trước xuống bên dưới
Nhưng chỉ giới hạn chứa 5 lần
Còn những lần khác lần 6; lần7.....v.v..... cứ như vậy
Nhưng vẫn giữ nguyên 5 mảng copy anh à
Tức là làm cho người ta cái nút Copy mà chỉ có thể bấm được 5 lần thôi. Đương nhiên mỗi lần bấm chỉ Insert copied cells 1 bản (của bạn nó copy phát 5 lần luôn là sai)Tôi chưa hiểu ý bạn lắm.
Tôi cũng làm copy 5 lượt mà.
Bạn chạy code bằng phím F8 sẽ thấy code chạy copy 5 lượt.
Bác ơi cháu làm được như này rùi bác àTức là làm cho người ta cái nút Copy mà chỉ có thể bấm được 5 lần thôi. Đương nhiên mỗi lần bấm chỉ Insert copied cells 1 bản (của bạn nó copy phát 5 lần luôn là sai)
Chắc là như vậy:Cảm ơn anh
Anh ơi không phải là copy 1 lúc 5 lần như vậy anh à
Copy từng lần 1. mỗi lần copy thì lần copy sau sẽ đứng bên trên lần copy trước đó
Và nó đẩy lần copy trước xuống bên dưới
Nhưng chỉ giới hạn chứa 5 lần
Còn những lần khác lần 6; lần7.....v.v..... cứ như vậy
Nhưng vẫn giữ nguyên 5 mảng copy anh à
Sub test()
Dim rng As Range, lR As Long
lR = Range("S" & Rows.Count).End(xlDown)
Set rng = Range("B1:P6")
If lR < rng.Count * 5 + 14 Then
Range("B1:P6").Copy
Range("S14").Insert Shift:=xlDown
End If
Application.CutCopyMode = False
Set rng = Nothing
End Sub
chắc là hổng đúng rồiChắc là như vậy:
Code chạy dựa trên điều kiện của dòng cuối cùng có dữ liệu của cột S.Mã:Sub test() Dim rng As Range, lR As Long lR = Range("S" & Rows.Count).End(xlDown) Set rng = Range("B1:P6") If lR < rng.Count * 5 + 14 Then Range("B1:P6").Copy Range("S14").Insert Shift:=xlDown End If Application.CutCopyMode = False Set rng = Nothing End Sub
Theo như dữ liệu bạn đưa thì tôi đặt điều kiện như vậy.
Nếu dữ liệu khác thì bạn tùy biến nhé!
Cảm ơn anhChắc là như vậy:
Code chạy dựa trên điều kiện của dòng cuối cùng có dữ liệu của cột S.Mã:Sub test() Dim rng As Range, lR As Long lR = Range("S" & Rows.Count).End(xlDown) Set rng = Range("B1:P6") If lR < rng.Count * 5 + 14 Then Range("B1:P6").Copy Range("S14").Insert Shift:=xlDown End If Application.CutCopyMode = False Set rng = Nothing End Sub
Theo như dữ liệu bạn đưa thì tôi đặt điều kiện như vậy.
Nếu dữ liệu khác thì bạn tùy biến nhé!
Chỉ chưa hiểu hết các yêu cầu, qua nhiều bài sẽ đúng thôiNgười biết không làm, người làm không biết ... đúng sai ?
hi hi..... lâu lắm mới thấy bác xuất hiện bác ơi.Chỉ chưa hiểu hết các yêu cầu, qua nhiều bài sẽ đúng thôi![]()
Mục đích của bạn là gì? chèn 5 lần xong thì sau muốn chèn nữa thì sao?Bác ơi, tức là mỗi lần copy thì nó đẩy các lần copy trước xuống bên dưới.
Nhưng với điều kiện là chỉ 5 lần thôi bác à
Cháu ghi macro rồi nhưng không được bác à
Tức là cháu copy sau đó insert vào thì được sau đó lại dùng động tác là xóa lần copy trước đi bác à
Vẫn chèn tiếp tục nữa anh àMục đích của bạn là gì? chèn 5 lần xong thì sau muốn chèn nữa thì sao?
Bạn kiểm tra codeVẫn chèn tiếp tục nữa anh à
lần copy sau luôn đứng trên các lần copy trước
nhưng giới hạn vùng chứa chỉ có 5 lần thôi anh à
Cứ copy nhiều lần nhưng vùng chứa chỉ có 5 lần thôi
Sub tessss()
Dim mangnguon, mangkt, kiemtra
mangnguon = Range("B2:P6")
mangkt = Range("S39:AG43")
kiemtra = False
For i = 1 To UBound(mangnguon)
For j = 1 To UBound(mangnguon, 2)
If mangnguon(i, j) <> mangkt(i, j) Then
kiemtra = True
GoTo copydl
End If
Next
Next
copydl:
If kiemtra Then
Range("B1:P6").Copy
Range("S14").Insert Shift:=xlDown
Else
MsgBox ("ban da chen 5 lan roi")
End If
End Sub
Không có code nào hiệu quả hơn code nầyBác ơi cháu làm được như này rùi bác à
Nhưng mà code nó thô lắm bác à
Nếu như cháu dùng tạm thì cũng được
Nhưng cháu muốn nó là code VBA thật sự cơ bác à
Bác xem nhé.
Bác ơi cháu làm được như này rùi bác à
Nhưng mà code nó thô lắm bác à
Nếu như cháu dùng tạm thì cũng được
Nhưng cháu muốn nó là code VBA thật sự cơ bác à
Bác xem nhé.
Cũng vẫn chưa đúng anh à, code của anh lại giống code của bài #9 anh àBạn kiểm tra code
Mã:Sub tessss() Dim mangnguon, mangkt, kiemtra mangnguon = Range("B2:P6") mangkt = Range("S39:AG43") kiemtra = False For i = 1 To UBound(mangnguon) For j = 1 To UBound(mangnguon, 2) If mangnguon(i, j) <> mangkt(i, j) Then kiemtra = True GoTo copydl End If Next Next copydl: If kiemtra Then Range("B1:P6").Copy Range("S14").Insert Shift:=xlDown Else MsgBox ("ban da chen 5 lan roi") End If End Sub
Hi hi... cháu thấy mọi người chưa hiểu ý thoi bác àKhông có code nào hiệu quả hơn code nầy