VBA- Cần giúp đỡ câu lệnh xác định vùng dữ liệu động càn tính toán.

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

VTDUOC

Thành viên mới
Tham gia
2/8/11
Bài viết
14
Được thích
1
Chào các bạn trên diễn đàn,

Hiện mình đang có một file hàng hóa nhập xuất trong kho và mình muốn lập công thức để tính toán xem lô hàng đã xuất hết chưa và ngày xuất cuối cùng là bao nhiêu. tuy nhiên vùng dữ liệu cho từng lô hàng chỉ cố định theo chiều ngang và co giãn theo chiều dọc nên khi mình tính dùng vba để tính toán thì bị vướng không biết xác định vùng dữ liệu của từng lô hàng sao cho chính xác.
Cụ thể là mình muốn count cột C cho từng mã lô hàng ở cột B và trừ đi count cột D cho từng mã lô cột B trong ô vàng, mình muốn dùng hàm max để trả về giá trị ngày xuất gần nhất của lô hàng tương ứng trong ô màu đỏ.

1532320774349.png

Mình ĐÃ LÀM PIVOT TABLE và tính toán để có được kết quả nhưng cũng muốn thực hành thêm vba. Mong các bạn trên diễn đàn giúp đỡ.
 

File đính kèm

Chào các bạn trên diễn đàn,

Hiện mình đang có một file hàng hóa nhập xuất trong kho và mình muốn lập công thức để tính toán xem lô hàng đã xuất hết chưa và ngày xuất cuối cùng là bao nhiêu. tuy nhiên vùng dữ liệu cho từng lô hàng chỉ cố định theo chiều ngang và co giãn theo chiều dọc nên khi mình tính dùng vba để tính toán thì bị vướng không biết xác định vùng dữ liệu của từng lô hàng sao cho chính xác.
Cụ thể là mình muốn count cột C cho từng mã lô hàng ở cột B và trừ đi count cột D cho từng mã lô cột B trong ô vàng, mình muốn dùng hàm max để trả về giá trị ngày xuất gần nhất của lô hàng tương ứng trong ô màu đỏ.

View attachment 200206

Mình ĐÃ LÀM PIVOT TABLE và tính toán để có được kết quả nhưng cũng muốn thực hành thêm vba. Mong các bạn trên diễn đàn giúp đỡ.
Nhập liệu kiểu này chỉ có nước... chết
 
Chào các bạn trên diễn đàn,

Hiện mình đang có một file hàng hóa nhập xuất trong kho và mình muốn lập công thức để tính toán xem lô hàng đã xuất hết chưa và ngày xuất cuối cùng là bao nhiêu. tuy nhiên vùng dữ liệu cho từng lô hàng chỉ cố định theo chiều ngang và co giãn theo chiều dọc nên khi mình tính dùng vba để tính toán thì bị vướng không biết xác định vùng dữ liệu của từng lô hàng sao cho chính xác.
Cụ thể là mình muốn count cột C cho từng mã lô hàng ở cột B và trừ đi count cột D cho từng mã lô cột B trong ô vàng, mình muốn dùng hàm max để trả về giá trị ngày xuất gần nhất của lô hàng tương ứng trong ô màu đỏ.

View attachment 200206

Mình ĐÃ LÀM PIVOT TABLE và tính toán để có được kết quả nhưng cũng muốn thực hành thêm vba. Mong các bạn trên diễn đàn giúp đỡ.
Bạn mới tập tành VBA mà làm bài này thì hơi khoai đó nha.
Mình gợi ý bạn về xác định vùng dữ liệu của từng lô hàng bằng cách dùng biến chạy i, j theo dòng dữ liệu
i bắt đầu từ mã lô đầu tiên, biến j cho chạy từ i + 1 đến cuối, khi nào mà giá trị dòng j khác rỗng tức là gặp lô hàng khác rồi thì vùng dữ liệu của 1 lô hàng là từ dòng i đến dòng j -1. muốn xác định lô hàng tiếp theo thì gán lại i = j để chạy tiếp vòng lặp
 
DẠ EM BIẾT NHƯNG HIỆN TRẠNG CÁC XẾP ĐÃ LÀM BAO LÂU NAY QUEN NHÌN KIỂU CŨ NÊN KHÔNG CHJU ĐỔI.
Bạn nói vậy tôi không tin đâu!
Không có Sếp nào yêu cầu bạn phải nhập liệu như thế này hay như thế kia cả. SẾP CHỈ YÊU CẦU BÁO CÁO ĐÚNG FORM MÀ HỌ MONG MUỐN mà thôi
Điều này có nghĩa là:
- Nhập liệu là chuyện của bạn. Bạn nhập liệu sao cho hợp lý nhất có thể. Còn cái báo cáo mà Sếp yêu cầu thì ta sẽ trích lọc từ dữ liệu đã nhập rồi chỉnh sửa lại cho phù hợp với form
- Quyết định nhập liệu vào form báo cáo luôn là một sai lầm nghiêm trọng của người thiếu kiến thức về CSDL
 
Bạn mới tập tành VBA mà làm bài này thì hơi khoai đó nha.
Mình gợi ý bạn về xác định vùng dữ liệu của từng lô hàng bằng cách dùng biến chạy i, j theo dòng dữ liệu
i bắt đầu từ mã lô đầu tiên, biến j cho chạy từ i + 1 đến cuối, khi nào mà giá trị dòng j khác rỗng tức là gặp lô hàng khác rồi thì vùng dữ liệu của 1 lô hàng là từ dòng i đến dòng j -1. muốn xác định lô hàng tiếp theo thì gán lại i = j để chạy tiếp vòng lặp
CẢM ƠN BẠN HOANGANHVO2612 ĐÃ GIÚP ĐỠ, MÌNH ĐÃ CHẠY VÒNG LẶP THEO CÁCH BẠN CHỈ VÀ ĐÃ LÀM ĐƯỢC RỒI, RẤT CẢM ƠN BẠN ĐÃ CHIA SẺ Ý TƯỞNG.
 
Web KT

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

Back
Top Bottom