xin code vba xử lý đổi đơn vị trong chuỗi bất kỳ

Liên hệ QC

minhlq123

Thành viên mới
Tham gia
17/12/18
Bài viết
24
Được thích
1
hi, mọi người em có bài toán cần làm bằng code vba. nội dung là tìm thông tin về đơn vị đo lường trong chuỗi rồi tự động đổi sang hệ đơn vị đo lường khác. ví dụ như cm thì sang in còn ml thì sang oz.
chi tiết ở file đính kèm, em cảm ơn cả nhà ah
 

File đính kèm

  • doidonvi.xlsx
    5.8 MB · Đọc: 6
Chắc bạn phải lập bảng tra để gặp là chuyển đổi sang;
Nhưng cơ mà làm sao biết là bạn muốn chuyển sang đơn vị nào?
Ví dụ: 1008 mét bạn muốn sang In hay Dậm hoặc gì gì nữa khác?
 
Upvote 0
Muốn làm gì thì cũng phải mô tả kỹ. Và luôn phải mô tả dữ liệu - có những cấu trúc nào, dạng nào. Vd. bạn có:
"...TritanCapacity:500ML/800MLDiameter:7.2CM*20.3CM/7.2CM*26.8CMNet Weight:0.16kg"

nhưng theo tôi nên có ít nhất 1 dấu cách trước Diameter và Net. Dữ liệu dính với nhau rồng rắn lên mây thế kia hơi kỳ.

Ngoài ra bạn cho ví dụ dạng <số><cm>, <số><ml>. Nhưng bạn không mô tả nên không biết rồi sẽ có dạng <số><0 hoặc nhiều dấu cách><cm>, <số><0 hoặc nhiều dấu cách><ml> hay không.

Tôi xét trường hợp chỉ có 2 dạng cm và ml do bạn chỉ cho ví dụ chứ không muốn bỏ công ra để liệt kê hết các dạng. Và tôi xét ở dạng <số><0 hoặc nhiều dấu cách><cm>, <số><0 hoặc nhiều dấu cách><ml>. Với mô tả như thế thì đoạn vd. "... Chúng tôi khuyến cáo nên dùng đơn vị cm ..." sẽ không thay đổi, tức "cm" vẫn giữ nguyên. Chính vì thế mà ở trên tôi nói là luôn luôn phải mô tả dữ liệu và yêu cầu thật kỹ lưỡng.

Trong tập tin nhấn nút Chuyển ở sheet chuyendoi. Vd. dùng regular expressions. Nhưng tất nhiên có nhiều con đường khác nhau đều dẫn về Hà Nội.

Dữ liệu nguồn trong cột A từ dòng 2, kết quả trong cột B. Nếu muốn ghi đè thì trong code sửa "B2" thành "A2"
 

File đính kèm

  • doidonvi.xlsm
    134.8 KB · Đọc: 17
Lần chỉnh sửa cuối:
Upvote 0
Muốn làm gì thì cũng phải mô tả kỹ. Và luôn phải mô tả dữ liệu - có những cấu trúc nào, dạng nào. Vd. bạn có:
"...TritanCapacity:500ML/800MLDiameter:7.2CM*20.3CM/7.2CM*26.8CMNet Weight:0.16kg"

nhưng theo tôi nên có ít nhất 1 dấu cách trước Diameter và Net. Dữ liệu dính với nhau rồng rắn lên mây thế kia hơi kỳ.

Ngoài ra bạn cho ví dụ dạng <số><cm>, <số><ml>. Nhưng bạn không mô tả nên không biết rồi sẽ có dạng <số><0 hoặc nhiều dấu cách><cm>, <số><0 hoặc nhiều dấu cách><ml> hay không.

Tôi xét trường hợp chỉ có 2 dạng cm và ml do bạn chỉ cho ví dụ chứ không muốn bỏ công ra để liệt kê hết các dạng. Và tôi xét ở dạng <số><0 hoặc nhiều dấu cách><cm>, <số><0 hoặc nhiều dấu cách><ml>. Với mô tả như thế thì đoạn vd. "... Chúng tôi khuyến cáo nên dùng đơn vị cm ..." sẽ không thay đổi, tức "cm" vẫn giữ nguyên. Chính vì thế mà ở trên tôi nói là luôn luôn phải mô tả dữ liệu và yêu cầu thật kỹ lưỡng.

Trong tập tin nhấn nút Chuyển ở sheet chuyendoi. Vd. dùng regular expressions. Nhưng tất nhiên có nhiều con đường khác nhau đều dẫn về Hà Nội.

Dữ liệu nguồn trong cột A từ dòng 2, kết quả trong cột B. Nếu muốn ghi đè thì trong code sửa "B2" thành "A2"
em cảm ơn anh đã góp ý, anh ơi, cái đơn vị thì đổi rồi, còn số thì chưa đổi được anh ah. em muốn số cũng đổi theo đơn vị ạ. anh sửa code giúp em với
Bài đã được tự động gộp:

Chắc bạn phải lập bảng tra để gặp là chuyển đổi sang;
Nhưng cơ mà làm sao biết là bạn muốn chuyển sang đơn vị nào?
Ví dụ: 1008 mét bạn muốn sang In hay Dậm hoặc gì gì nữa khác?
vân đơn vị đo lường thì nhiều, em chỉ cần chủ yếu là ml sang oz, cm sang in, và mm sang in thôi anh ah
 
Upvote 0
em cảm ơn anh đã góp ý, anh ơi, cái đơn vị thì đổi rồi, còn số thì chưa đổi được anh ah. em muốn số cũng đổi theo đơn vị ạ. anh sửa code giúp em với
À, thì ra đọc còn thiếu. Vậy bạn cho tôi biết 1 cm = ? in, 1 ml = ? oz

Tôi không biết oz, in là gì.

In có phải là inch? Đã viết thì viết cho chuẩn theo đơn vị SI cơ bản và bổ sung, đừng viết theo ngôn ngữ nói thường ngày.

Bây giờ đọc thì thấy bạn còn muốn cả mm. Thế có đổi cả mm không? Nhìn kỹ dữ liệu thì còn có kg. Có đổi kg không? Đổi sang tạ, yến, bát, cốc hay gì?
Hãy suy nghĩ kỹ, mô tả kỹ vì nếu là tôi làm thì tôi sẽ chỉ làm 1 lần nữa mà thôi.
 
Lần chỉnh sửa cuối:
Upvote 0
À, thì ra đọc còn thiếu. Vậy bạn cho tôi biết 1 cm = ? in, 1 ml = ? oz

Tôi không biết oz, in là gì.

In có phải là inch? Đã viết thì viết cho chuẩn theo đơn vị SI cơ bản và bổ sung, đừng viết theo ngôn ngữ nói thường ngày.

Bây giờ đọc thì thấy bạn còn muốn cả mm. Thế có đổi cả mm không? Nhìn kỹ dữ liệu thì còn có kg. Có đổi kg không? Đổi sang tạ, yến, bát, cốc hay gì?
Hãy suy nghĩ kỹ, mô tả kỹ vì nếu là tôi làm thì tôi sẽ chỉ làm 1 lần nữa mà thôi.
dạ vâng anh.
các ký tự em viết là theo chuẩn của excel đấy anh ah.
a đổi giúp em
- mm sang in (inch)
-cm sang in (đơn vị đo lường chiều dài chuẩn mỹ
-ml sang oz (oz là đơn vị đo lường thể tích chuẩn mỹ)
-kg sang lbm. (lbm là đơn vị đo lường khối lượng chuẩn mỹ)
- chỗ nào có ký tự * , / , : , [],() thì anh chèn giúp em khoảng trống vào trước và sau nó với ah.
các số này sử dụng hàm convert trong excel để chuyển đổi.
https://support.office.com/vi-vn/article/convert-hàm-convert-d785bef1-808e-4aac-bdcd-666c810f9af2
anh tham khảo lệnh convert ở đây ah.
 
Upvote 0
Web KT
Back
Top Bottom