Nhờ giúp code thay thế công thức

Liên hệ QC

huyen891977

Thành viên chính thức
Tham gia
15/11/08
Bài viết
87
Được thích
16
Nghề nghiệp
nojob
Chào các bạn. Mình xin hỏi các bạn vấn đề sau có thể giải quyết bằng VBA không, nếu được mình post file lên nhờ các bạn giúp đỡ.
Vấn đề là : File của mình có nhiều sheet. Trong đó sheet XUAT dùng để nhập các hóa đơn mua hàng của khách hàng ngày, dữ liệu trong sheet này trên 40000 dòng. Ở một số cột trong sheet có chứa các công thức, khi mình fill các công thức xuống 40000 dòng thì file tăng dung lượng dấng kể và nó tính toán rất chậm có khi treo máy. Trường hợp này có thể dùng code để thay thế các công thức trong sheet được không ?
Thân chào! Chúc sức khỏe tất cả.

Mình gởi file lên nhờ bạn giúp nhé. Cám ơn rất nhiều.
 
Lần chỉnh sửa cuối:
Form nhập liệu của bạn có nhiều bất cập. Như: Nếu bạn nhập liệu vào các textbox 3, 7, 11, 15, 19, 23 thì nó điều trùng vào 1 vị trí cả. Vậy có quá dư thừa chăng? Vì mình dùng Form Nhập liệu của bạn để nạp công thức vào luôn. Vậy sẽ tiện thời gian hơn và tiết kiệm được dung lượng hơn. Vậy bạn chỉnh sửa lại Form cho hợp lý và chỉnh lại công thức lần cuối đi. Rồi mai mình sẽ làm tiếp vì tối quá rồi. Có thể gợi ý cho bạn như sau: Về phần Textbox thì bạn nên tăng số dòng của code lên. Ví dụ như:
PHP:
ws.Cells(iRow, 5).Value = Me.TextBox3.Value ws.Cells(iRow + 1, 5).Value = Me.TextBox7.Value ws.Cells(iRow + 2, 5).Value = Me.TextBox11.Value ws.Cells(iRow + 3, 5).Value = Me.TextBox15.Value ws.Cells(iRow + 4, 5).Value = Me.TextBox19.Value ws.Cells(iRow + 5, 5).Value = Me.TextBox23.Value ...
Và các Textbox khác cũng tương tự như vậy? Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
PHP:
ws.Cells(iRow, 5).Value = Me.TextBox3.Value
ws.Cells(iRow + 1, 5).Value = Me.TextBox7.Value
ws.Cells(iRow + 2, 5).Value = Me.TextBox11.Value
ws.Cells(iRow + 3, 5).Value = Me.TextBox15.Value
ws.Cells(iRow + 4, 5).Value = Me.TextBox19.Value
ws.Cells(iRow + 5, 5).Value = Me.TextBox23.Value
...
Và các Textbox khác cũng tương tự như vậy?
Thân.
Thêm 1 lựa chọn khác :
Trong những trường hợp tương tự như trên, mình thừơng dùng Offset thay cho Cells(...)

TDN
 
Upvote 0
Như vầy hình như sẽ nặng hơn đó bác à!
PHP:
ws.Cells(iRow, 5).Value = Me.TextBox3.Value ws.Cells(iRow, 5).Offset(1).Value = Me.TextBox7.Value ws.Cells(iRow, 5).Offset(2).Value = Me.TextBox11.Value ws.Cells(iRow, 5).Offset(3).Value = Me.TextBox15.Value ws.Cells(iRow, 5).Offset(4).Value = Me.TextBox19.Value ws.Cells(iRow, 5).Offset(5).Value = Me.TextBox23.Value ...
Mà trong file này có 1 bất cập nữa là: nếu có nhiều textbox như vầy thì việc truyền MaKH cho các dòng dữ liệu kia cũng gặp nhiều khó khăn. Thật sự đây là 1 cách sắp xếp dữ liệu chưa được hay. Và bảng dữ liệu bên Sheet KH chưa đủ nên việc lấy dữ liệu ra sẽ bị lỗi và code không chạy chính xác được. Cần phải nhập đủ 500 khác hàng bên Sheet KH để làm dữ liệu nguồn cho hàm Index bên Sheet XUAT thì mới ổn. Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn xem thử thế này có ổn không và nếu nhiều Textbox thì có thể kết hợp với For...Next
PHP:
With ws.Cells(iRow, 5)
.Value = Me.TextBox3.Value
.Offset(1).Value = Me.TextBox7.Value
.Offset(2).Value = Me.TextBox11.Value
.Offset(3).Value = Me.TextBox15.Value
.Offset(4).Value = Me.TextBox19.Value
.Offset(5).Value = Me.TextBox23.Value
...  
End With
TDN

 
Upvote 0
Vấn đề của mình đã được giải quyết xong nhờ đứa em họ đang học đại học ở AN GIANG giúp giùm. Khi mình hoàn chỉnh file sẽ up lại tặng các bạn nào có nhu cầu sử dụng giống mình. Thân chào các bạn !
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom