Giúp đỡ về macro fill-down (1 người xem)

Liên hệ QC

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

skullrock

Thành viên chính thức
Tham gia
5/12/08
Bài viết
70
Được thích
1
File tổng hợp của mình do rất nhiều dòng dữ liệu và công thức, nên ở mỗi nhóm mình chỉ giữ lại hàng đầu tiên đã có đủ công thức, khi cần chỉ cần bung copy cho các hàng phía dưới, mục đích để lưu file gọn nhẹ, chỉ bung full khi cần tới.
Mình đã tạo được 1 button, với code sau:
Mã:
Sub Button26814_Click()'
' Button26814_Click Macro
' Macro recorded 12/3/2012 by pctuan
'


'
    Range("C7:M7").Select
    Selection.AutoFill Destination:=Range("C7:M25")
    Range("C27:M27").Select
    Selection.AutoFill Destination:=Range("C27:M45")
    Calculate
End Sub
1.JPG
2.JPG
Vấn đề xảy ra là khi chèn thêm hàng bên file dữ liệu (2 file đi kèm file tổng hợp), thì code trong button không tự động thay đổi theo đc. Chỉnh sửa lại là vấn đề khó khăn vì file của mình gồm gần cả nghìn nhóm như thế, khi có một hàng chèn vào thì toàn bộ các nhóm phía sau bị nhảy loạn lên hết.
Xin chỉ giáo mình cách để giữ sao cho code trong button hoạt động tốt khi có thêm dữ liệu vào mà chỉ cần chỉnh sửa ngay nhóm dữ liệu đó.
Có một cách khác thủ công hơn là sử dụng macro tạo phím tắt cho việc copy từng nhóm dữ liệu
Mã:
Sub Macro4()'
' Macro4 Macro
' Macro recorded 12/3/2012 by pctuan
'
' Keyboard Shortcut: Ctrl+Shift+A
'
    ActiveCell.Range("A1:K1").Select
    Selection.AutoFill Destination:=ActiveCell.Range("A1:K19")
    Calculate
End Sub
Với cách này thì chỉ dùm mình cách để copy với số lượng dòng trong từng nhóm dữ liệu khác nhau mà vẫn chạy tốt. Vd trong code trên thì chỉ áp dụng đc cho nhóm có 19 dòng dữ liệu, khi nhóm có ít hơn hoặc nhiều hơn thì vẫn tự động chạy đủ.
Ở cả 2 cách còn một vấn đề nữa là khi số lượng dòng trong một nhóm cáp hơi lớn, khi double click để copy xuống bị báo lỗi "Selection is too large". Giúp mình xử lý luôn vấn đề này.
Mình trình bày hơi rối, mong các bác hiểu ý và giúp đỡ được mình.
 

File đính kèm

uhm nếu bỏ 2 dòng đó thì chạy tốt rồi, tại lúc sáng mình để luôn 2 dòng đó chạy, thấy nó paste như dòng đầu tiên copy, chứ ko phải copy xong rồi mới fix value.
Ah chắc copy xong phải thêm 1 dòng code Calculate nữa mới fix value, chứ chưa Calculate mà fix thì có lẽ fix nhầm.
 
Upvote 0
uhm nếu bỏ 2 dòng đó thì chạy tốt rồi, tại lúc sáng mình để luôn 2 dòng đó chạy, thấy nó paste như dòng đầu tiên copy, chứ ko phải copy xong rồi mới fix value.
Ah chắc copy xong phải thêm 1 dòng code Calculate nữa mới fix value, chứ chưa Calculate mà fix thì có lẽ fix nhầm.
Bậy bạ!
Có khi nào mà fix nhầm
Coi lại xem có phải calculate đang là manual không?
 
Upvote 0
Sheet5.Cells(BeginR + 1, 3).Resize(EndR - BeginR, 125).Value = _
Sheet5.Cells(BeginR + 1, 3).Resize(EndR - BeginR, 125).Value
[/php]
uhm thank bro, do file lớn nên mình để calculate là manual mà. Tạm thời bỏ 2 cái dòng trên và thêm Calculate sau Loop. Thêm 1 macro paste value riêng cũng ổn rồi.
Cám ơn bạn đã nhiệt tình giúp đỡ.:clapping:
 
Upvote 0
Web KT

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

Back
Top Bottom