phochiadoi
Thành viên mới

- Tham gia
- 24/9/06
- Bài viết
- 10
- Được thích
- 0
Add-Ins để phân loại gỗ theo quy cách
Một danh sách 3 cột: Dày, Rộng, Dài với hàng trăm mẫu tin trùng nhau.
Có cách nào trích xuất ra từng loại và số thanh của mỗi loại không?
Ví dụ:
Dày___ Rộng___Dài____Số Tấm_________Khối Lượng
0.03___0.35____3.5_____30________= dài * rộng * dài * số tấm
0.03___0.35____4.0____133_______ = dài * rộng * dài * st
0.04___0.45____3.0_____27________= dài * rộng * dài * số tấm
.... ...... ..... ...... .......................................
Tôi vào Excel, tạo 1 tài liệu mới
Vào Tool > Macro > Visual Basic Editor
Insert Module 1 với đoạn code sau:
Function phanloai(rng As Range, day As Double, rong As Double, dai As Double) As Integer
'khai bao cac bien can dung
Dim count As Integer
Dim i As Integer
'khoi dong so luong ban dau
count = 0
'duyet xu ly tung tam go
For i = 1 To rng.count
'Kiem tra cac dieu kien thoa man
If (day = CDbl(rng.Item(i, 1))) And (rong = CDbl(rng.Item(i, 2))) And (dai = CDbl(rng.Item(i, 3))) Then
'tim thoa thi tang so luong dem
count = count + 1
End If
'tra ve so luong dem duoc
phanloai = count
Next i
End Function
Rồi quay lại cửa sổ Excel
vào File > Save As... và lưu với tên file là Quycach.xla vào thư mục Add-Ins của Microsoft Office
Đóng Excel lại và mở lại Excel.
Sau đó vào Tool > Add-Ins... và đánh check vào mục Quycach.
Nhưng khi dùng hàm ở danh sách:
= phanloai(a1:c20;0.03;0.35;3.5)
thì kết quả là : #NAME?
Sau đó tôi vào xoá Module 1 và copy đoạn code trên vào ThisWorkbook thì kết quả vẫn như vậy.
Hàm này chỉ dùng được khi tôi lưu nó ở dạng Module trong từng file riêng lẻ của Excel. Cách này hơi mất công vì tôi thường xuyên phải thống kê hàng trăm khối gỗ theo quy cách. Đồng thời (hình như) Module làm việc rất nặng nề với hàng trăm mẫu tin, mỗi lần chỉnh sửa những cell liên quan đến hàm là mất trên dưới 1 phút. Hơn nữa cũng không tự động trích xuất được những loại quy cách có mặt trong danh sách.
Có lẽ vì tôi không biết cách tạo một Add-Ins thì phải.
Xin mọi người chỉ giúp cách trích xuất một cách tự động các mẫu tin và số lượng của mỗi loại bằng adin. (Đặt biệt là các thao tác để tạo một adin, cũng như thành phần của một Add-Ins)
Lần đầu tiên phát hiện ra một nơi lý thú như thế này (Giải Pháp Excel) và cũng là lần đầu mày mò cách viết một hàm trong Excel nên còn lớ ngớ.
Mong mọi người chỉ bảo thêm.
Một danh sách 3 cột: Dày, Rộng, Dài với hàng trăm mẫu tin trùng nhau.
Có cách nào trích xuất ra từng loại và số thanh của mỗi loại không?
Ví dụ:
Dày___ Rộng___Dài____Số Tấm_________Khối Lượng
0.03___0.35____3.5_____30________= dài * rộng * dài * số tấm
0.03___0.35____4.0____133_______ = dài * rộng * dài * st
0.04___0.45____3.0_____27________= dài * rộng * dài * số tấm
.... ...... ..... ...... .......................................
Tôi vào Excel, tạo 1 tài liệu mới
Vào Tool > Macro > Visual Basic Editor
Insert Module 1 với đoạn code sau:
Function phanloai(rng As Range, day As Double, rong As Double, dai As Double) As Integer
'khai bao cac bien can dung
Dim count As Integer
Dim i As Integer
'khoi dong so luong ban dau
count = 0
'duyet xu ly tung tam go
For i = 1 To rng.count
'Kiem tra cac dieu kien thoa man
If (day = CDbl(rng.Item(i, 1))) And (rong = CDbl(rng.Item(i, 2))) And (dai = CDbl(rng.Item(i, 3))) Then
'tim thoa thi tang so luong dem
count = count + 1
End If
'tra ve so luong dem duoc
phanloai = count
Next i
End Function
Rồi quay lại cửa sổ Excel
vào File > Save As... và lưu với tên file là Quycach.xla vào thư mục Add-Ins của Microsoft Office
Đóng Excel lại và mở lại Excel.
Sau đó vào Tool > Add-Ins... và đánh check vào mục Quycach.
Nhưng khi dùng hàm ở danh sách:
= phanloai(a1:c20;0.03;0.35;3.5)
thì kết quả là : #NAME?
Sau đó tôi vào xoá Module 1 và copy đoạn code trên vào ThisWorkbook thì kết quả vẫn như vậy.
Hàm này chỉ dùng được khi tôi lưu nó ở dạng Module trong từng file riêng lẻ của Excel. Cách này hơi mất công vì tôi thường xuyên phải thống kê hàng trăm khối gỗ theo quy cách. Đồng thời (hình như) Module làm việc rất nặng nề với hàng trăm mẫu tin, mỗi lần chỉnh sửa những cell liên quan đến hàm là mất trên dưới 1 phút. Hơn nữa cũng không tự động trích xuất được những loại quy cách có mặt trong danh sách.
Có lẽ vì tôi không biết cách tạo một Add-Ins thì phải.
Xin mọi người chỉ giúp cách trích xuất một cách tự động các mẫu tin và số lượng của mỗi loại bằng adin. (Đặt biệt là các thao tác để tạo một adin, cũng như thành phần của một Add-Ins)
Lần đầu tiên phát hiện ra một nơi lý thú như thế này (Giải Pháp Excel) và cũng là lần đầu mày mò cách viết một hàm trong Excel nên còn lớ ngớ.
Mong mọi người chỉ bảo thêm.
Chỉnh sửa lần cuối bởi điều hành viên: