hoanganhvo2612
Thành viên thường trực
- Tham gia
- 15/11/16
- Bài viết
- 250
- Được thích
- 129
Chào các bạn,
Mình có viết code VBA để cập nhật dữ liệu. Bài toán như sau:
Mình có bảng dữ liệu từ A920, nhưng bảng dữ liệu này mình đang để chế độ lọc theo 1 số mã hàng. Mình cần cập nhật dữ liệu vào bảng này theo dữ liệu nhập ở G2:J2.
Mình có viết code để cập nhật như sau:
Mình đưa bảng data vào 1 mảng sau đó dùng vòng lặp để check, sau khi cập nhật mảng thì em dán lại vào sheet. Nhưng vấn đề là khi bảng dữ liệu đang lọc thì dán lại sẽ bị sai ạ.
Mong các bạn xem giúp mình. có cách nào vẫn để lọc và dùng mảng mà cập nhật dữ liệu được đúng không ạ?
Em nghĩ hướng là xét từng ô (cell) nhưng nếu dữ liệu lớn và cần cập nhập nhiều thì không khả thi vì nó sẽ gây chậm ạ. Đây chỉ là dữ liệu giả định để mọi người lắm được vấn đề ạ.
Cảm ơn cả nhà
Mình có viết code VBA để cập nhật dữ liệu. Bài toán như sau:
Mình có bảng dữ liệu từ A920, nhưng bảng dữ liệu này mình đang để chế độ lọc theo 1 số mã hàng. Mình cần cập nhật dữ liệu vào bảng này theo dữ liệu nhập ở G2:J2.
Mình có viết code để cập nhật như sau:
Mình đưa bảng data vào 1 mảng sau đó dùng vòng lặp để check, sau khi cập nhật mảng thì em dán lại vào sheet. Nhưng vấn đề là khi bảng dữ liệu đang lọc thì dán lại sẽ bị sai ạ.
Mong các bạn xem giúp mình. có cách nào vẫn để lọc và dùng mảng mà cập nhật dữ liệu được đúng không ạ?
Em nghĩ hướng là xét từng ô (cell) nhưng nếu dữ liệu lớn và cần cập nhập nhiều thì không khả thi vì nó sẽ gây chậm ạ. Đây chỉ là dữ liệu giả định để mọi người lắm được vấn đề ạ.
Cảm ơn cả nhà
Mã:
Sub test()
Dim i As Integer, ar()
ar = Range("A10:D20").Value
For i = 1 To UBound(ar)
If ar(i, 1) = Range("G2") Then
ar(i, 3) = Range("I2"): ar(i, 4) = Range("J2")
End If
Next
Range("A10").Resize(UBound(ar), UBound(ar, 2)) = ar
End Sub