Hỏi về Code Copy công thức. (1 người xem)

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

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

khamha

Không có việc gì khó...
Tham gia
4/6/10
Bài viết
662
Được thích
846
Nghề nghiệp
CNVC Laos
Chào các bạn, mình hay dùng sự kiện này để Copy Công
thức.Ví dụ: C1 = A1+B1
Sau khi nhấp chuột phải thì nó sẽ Copy Công thức cho C2:C6000

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Range("C1").Select
Selection.AutoFill Destination:=Range("C1:C6000"), Type:=xlFillDefault
End Sub

Nếu là Công thức như trên thì ko nói làm gì,nhưng nếu mà gặp
anh IF hay anh SUMPRODUCT
thì sử lý rất chậm,Và lại dữ liếu ít khi tới C6000.

Nên nhờ các bạn sửa lại cái Code trên cho nó chạy với điều
kiện: Copy Công thức tới chỗ nào mà có dữ liệu tại cột A2:A6000 hay B2:B6000
Cảm ơn các bạn.
 
Chào các bạn, mình hay dùng sự kiện này để Copy Công
thức.Ví dụ: C1 = A1+B1
Sau khi nhấp chuột phải thì nó sẽ Copy Công thức cho C2:C6000

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Range("C1").Select
Selection.AutoFill Destination:=Range("C1:C6000"), Type:=xlFillDefault
End Sub

Nếu là Công thức như trên thì ko nói làm gì,nhưng nếu mà gặp
anh IF hay anh SUMPRODUCT
thì sử lý rất chậm,Và lại dữ liếu ít khi tới C6000.

Nên nhờ các bạn sửa lại cái Code trên cho nó chạy với điều
kiện: Copy Công thức tới chỗ nào mà có dữ liệu tại cột A2:A6000 hay B2:B6000
Cảm ơn các bạn.
Đúng ra nếu bạn biết dùng công cụ List (trong Excel 2003) hoặc còn gọi là Table (trong Excel 2007) thì thậm chí khỏi cần code gì cả ---> Cứ dữ liệu đến đâu, công thức tự điền đến nấy
- Excel 2003: Quét chọn dữ liệu (bao gồm cả tiêu đề) rồi Click phải chuột, chọn Create List
- Excel 2007 (hoặc 2010): Quét chọn dữ liệu (bao gồm cả tiêu đề), chuyển sang tab Insert, chọn Table
 
Upvote 0
Đúng ra nếu bạn biết dùng công cụ List (trong Excel 2003) hoặc còn gọi là Table (trong Excel 2007) thì thậm chí khỏi cần code gì cả ---> Cứ dữ liệu đến đâu, công thức tự điền đến nấy
- Excel 2003: Quét chọn dữ liệu (bao gồm cả tiêu đề) rồi Click phải chuột, chọn Create List
- Excel 2007 (hoặc 2010): Quét chọn dữ liệu (bao gồm cả tiêu đề), chuyển sang tab Insert, chọn Table

Thật ra cái Code này ko phải dùng trong Sheet nhập dữ liệu,mà là dùng sau khi Filer dữ liệu từ Sheet"Data" ra Sheet"Baocao" Đoạn Code trên nằm trong Sheet"Baocao" Có nhiệm vụ Copy công thức xuống dưới,nếu CT bình thường thì ko sao,nếu là If hay SUMPRODUCT thì chậm lắm,vì nó phải copy xuống đến Cell 6.000.
 
Upvote 0
Thật ra cái Code này ko phải dùng trong Sheet nhập dữ liệu,mà là dùng sau khi Filer dữ liệu từ Sheet"Data" ra Sheet"Baocao" Đoạn Code trên nằm trong Sheet"Baocao" Có nhiệm vụ Copy công thức xuống dưới,nếu CT bình thường thì ko sao,nếu là If hay SUMPRODUCT thì chậm lắm,vì nó phải copy xuống đến Cell 6.000.
Tôi thắc mắc: Nếu bạn đã dùng đến code thì cần gì công thức? Sao không tính toán trong code rồi điền kết quả vào cell luôn ---> Đở nặng file
 
Upvote 0
Một phần là do TĐ về Excel và các File đã làm xong rồi chạy tốt,chỉ tội là chạy chậm khi phải Copy công thức xuống quá nhiều (nhưng dữ liệu thì lúc nhiều lúc ít)
Nếu có cách như ndu nói thì hay quá,bạn cho mình một vài ví dụ được ko,để áp dụng vào File khác.Còn các File đã làm xong rồi.thì chỉ cần sửa lại đoạn Code trên chắc OK.
 
Upvote 0
Sau khi mày mò làm ra đoạn Code ( Củ khoai )này,nó hoạt động
tốt...nhưng lại phải liên quan đến nhiều Cell trong bảng tính
và nhìn ko chuyên nghiệp:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Sut
End Sub

Sub Sut()
Range("C2:C6000").ClearContents
Range("IV2") = "=COUNTA(A2:A6000)+1"
Range("IV1") = "=""C2:C""&IV2"
Range("C2") = "=A2+B2"
Range("C2").AutoFill Destination:=Range(Data.Range("IV1")),
Type:=xlFillDefault
End Sub

Đưa lên nhờ các bạn xem và sửa cho mìnhvới.Thank
 
Upvote 0
Web KT

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

Back
Top Bottom