Giúp Em Hàm VBA Tách Số Thập Phân Ra Khỏi Chuỗi? | Giải Pháp Excel

Giải Pháp Excel
  • Trang chủ Có gì mới Hoạt động gần nhất Tác giả
  • Diễn đàn Tìm bài viết mới Tìm theo chuyên mục
  • Video New Video về Excel Video về tin học khác Tin tức về tin học chung
  • Thông tin mới Featured content Tìm bài mới Tài Nguyên Mới Hoạt động gần nhất
  • Tài nguyên Đánh giá mới nhất Tìm tài nguyên
  • Facebook
  • Đóng góp
Đăng nhập Đăng Ký Có gì mới? Tìm kiếm

Tìm kiếm

Mọi nơi Đề tài Diễn đàn này Đề tài này Chỉ tìm trong tiêu đề Note Bởi: Tìm kiếm Tìm nâng cao…
  • Tìm bài viết mới
  • Tìm theo chuyên mục
Menu Đăng nhập Đăng Ký Install the app Install How to install the app on iOS

Follow along with the video below to see how to install our site as a web app on your home screen.

Note: This feature may not be available in some browsers.

  • Khách ơi! GPE thông tin đến bạn ấn phẩm "lập trình VBA trong Excel": - Phần cơ bản - Phần Nâng Cao - VBA trong Excel - Cải thiện và tăng tốc
  • Trang chủ
  • Diễn đàn
  • Lập Trình với Excel
You are using an out of date browser. It may not display this or other websites correctly.You should upgrade or use an alternative browser. Giúp em hàm VBA tách số thập phân ra khỏi chuỗi? (1 người xem)
  • Thread starter Thread starter Duong_VBA
  • Ngày gửi Ngày gửi 6/2/09
Liên hệ QC

Người dùng đang xem chủ đề này

Đang trực tuyến: 2 (Thành viên: 0, Khách: 2) Duong_VBA

Duong_VBA

Thành viên chính thức
Tham gia 10/11/07 Bài viết 89 Được thích 26 Nhờ các bác chỉ giúp hàm VBA tách số thập phân trong 1 chuỗi ví dụ: "3,4 5 5,6 8 m 0,5" vào các cột tương ứng là: 3,4 - 5 - 5,6 - 8 - 10- 0,5. Với quy ước m là 10, giữa các số có ít nhất 1 dấu cách và nếu nhập"3, 4 5 5,6 8 m 0,5" hoặc "3,4 5 5,6 8 m 0 ,5" thì báo sai vì sau dấu thập phân có dấu cách. Các bác xem file đính kèm (Em nghĩ khi không có dấu cách thì không thể tách được theo đúng ý) Cảm ơn!

File đính kèm

  • Tach_so_thap_phan.xls Tach_so_thap_phan.xls 16.5 KB · Đọc: 31
Lần chỉnh sửa cuối: 6/2/09 Sắp xếp theo thời gian sắp xếp theo bầu chọn cadafi

cadafi

Hành động từ trái tim
Administrator Tham gia 27/5/07 Bài viết 4,297 Được thích 11,387 Donate (Paypal) Donate Giới tính Nam Nghề nghiệp Business Man
Duong_VBA đã viết: Nhờ các bác chỉ giúp hàm VBA tách số thập phân trong 1 chuỗi ví dụ: "3,4 5 5,6 8 m 0,5" vào các cột tương ứng là: 3,4 - 5 - 5,6 - 8 - 10- 0,5. Với quy ước m là 10, giữa các số có ít nhất 1 dấu cách và nếu nhập"3, 4 5 5,6 8 m 0,5" hoặc "3,4 5 5,6 8 m 0 ,5" thì báo sai vì sau dấu thập phân có dấu cách. Các bác xem file đính kèm (Em nghĩ khi không có dấu cách thì không thể tách được theo đúng ý) Cảm ơn! Nhấp chuột vào đây để mở rộng...
Không cần VBA để giải quyết vấn để của bạn đâu! Bạn dùng công cụ Text to column của excel (Vào Data/Text to column)! Vọc thử vài ví dụ là ra ngay! Upvote 0 Duong_VBA

Duong_VBA

Thành viên chính thức
Tham gia 10/11/07 Bài viết 89 Được thích 26 Text to column không làm được bạc ạ! Vì cột đã cố định (Bảng điểm) và chữ m nó không hiểu là 10, khi gõ sai dấu thập phân nó cũng cứ tách.... Upvote 0 ptlong04x1

ptlong04x1

Thành viên tích cực
Tham gia 15/10/08 Bài viết 1,031 Được thích 1,531 Nghề nghiệp Kỹ sư xây dựng
Duong_VBA đã viết: Nhờ các bác chỉ giúp hàm VBA tách số thập phân trong 1 chuỗi ví dụ: "3,4 5 5,6 8 m 0,5" vào các cột tương ứng là: 3,4 - 5 - 5,6 - 8 - 10- 0,5. Với quy ước m là 10, giữa các số có ít nhất 1 dấu cách và nếu nhập"3, 4 5 5,6 8 m 0,5" hoặc "3,4 5 5,6 8 m 0 ,5" thì báo sai vì sau dấu thập phân có dấu cách. Các bác xem file đính kèm (Em nghĩ khi không có dấu cách thì không thể tách được theo đúng ý) Cảm ơn! Nhấp chuột vào đây để mở rộng...
Mình thấy nếu không có dấu cách như bạn nói thì vẫn có thể tách được đúng ý, trong Text to columns cho phép chúng ta đặt vị trí phân cách vào bất kỳ vị trí nào trong chuỗi. Upvote 0 cadafi

cadafi

Hành động từ trái tim
Administrator Tham gia 27/5/07 Bài viết 4,297 Được thích 11,387 Donate (Paypal) Donate Giới tính Nam Nghề nghiệp Business Man
Duong_VBA đã viết: Text to column không làm được bạc ạ! Vì cột đã cố định (Bảng điểm) và chữ m nó không hiểu là 10, khi gõ sai dấu thập phân nó cũng cứ tách.... Nhấp chuột vào đây để mở rộng...
1. Ctrl+H, tìm tất cả các chuỗi " ," rồi đổi thành "," và ", " đổi thành "," 2. Sau đó dùng Text to Column. Còn chữ m thì đơn giản rồi! Tìm tất cả chữ "m" và thay bằng 10 là xong (Ctrl+H)! Lần chỉnh sửa cuối: 6/2/09 Upvote 0 Po_Pikachu

Po_Pikachu

[email protected]
Tham gia 29/4/08 Bài viết 2,209 Được thích 3,572 Nghề nghiệp #VALUE! Muốn dùng VBA thì bạn làm dùng code sau: PHP: Sao chép. Function tach(so As String, Optional vitri As Integer = 1) Dim mang() As String so = Replace(so, ",", Application.International(xlDecimalSeparator)) mang() = Split(so, " ") ReDim Preserve mang(0 To 3) tach = Val(IIf(mang(vitri - 1) = "m", 10, mang(vitri - 1))) End Function Nhưng có 1 điều kiện là bạn phải tách riêng từng số ra bằng 1 dấu cách. Chứ nếu cái có cái không thì làm không được đâu. Thân.

File đính kèm

  • Tach_so_thap_phan.xls Tach_so_thap_phan.xls 28 KB · Đọc: 48
Lần chỉnh sửa cuối: 7/2/09 Upvote 0 ndu96081631

ndu96081631

Huyền thoại GPE
Thành viên BQT Super Moderator Tham gia 5/6/08 Bài viết 30,703 Được thích 53,982
Po_Pikachu đã viết: Muốn dùng VBA thì bạn làm dùng code sau: PHP: Sao chép. Function tach(so As String, Optional vitri As Integer = 1) Dim mang() As String so = Replace(so, ",", ".") mang() = Split(so, " ") ReDim Preserve mang(0 To 3) tach = Val(IIf(mang(vitri - 1) = "m", 10, mang(vitri - 1))) End Function Nhưng có 1 điều kiện là bạn phải tách riêng từng số ra bằng 1 dấu cách. Chứ nếu cái có cái không thì làm không được đâu. Thân. Nhấp chuột vào đây để mở rộng...
Ấy... Cái này: so = Replace(so, ",", ".") không ổn à nha! Sao bạn biết chắc rằng trên máy người ta xài dấu thập phân là dấu chấm! Chắc ăn phải là so = Replace(so, ",", Application.International(xlDecimalSeparator)) Upvote 0 Duong_VBA

Duong_VBA

Thành viên chính thức
Tham gia 10/11/07 Bài viết 89 Được thích 26 +Thêm cái này để dù có bao dấu cách cũng được. so = Application.WorksheetFunction.Trim(so) + Ở hàm trên phải tách riêng từng số ra bằng 1 dấu cách. Các bác xem có cách nào cho trường hợp số nguyên nhập liên nhau không có dấu cách (để nhanh) mà vẫn tách đúng không? Upvote 0 solomon2211

solomon2211

Thành viên tích cực
Tham gia 25/11/08 Bài viết 1,122 Được thích 4,497 Nghề nghiệp Tài chính - Kế toán Trường hợp điểm số là: 10 2 0 5 thì hiển thị thế nào? có phải "m2 5". Và điểm 0 5.5 2 1 thì hiển thị " 5,5 21"? Lần chỉnh sửa cuối: 7/2/09 Upvote 0 ndu96081631

ndu96081631

Huyền thoại GPE
Thành viên BQT Super Moderator Tham gia 5/6/08 Bài viết 30,703 Được thích 53,982
Duong_VBA đã viết: +Thêm cái này để dù có bao dấu cách cũng được. so = Application.WorksheetFunction.Trim(so) + Ở hàm trên phải tách riêng từng số ra bằng 1 dấu cách. Các bác xem có cách nào cho trường hợp số nguyên nhập liên nhau không có dấu cách (để nhanh) mà vẫn tách đúng không? Nhấp chuột vào đây để mở rộng...
Nếu trong chuổi có 1 nhóm số được nhập liên tiếp nhau (không có dấu cách) thì xem cái này: Tách số không dùng vòng lập Còn với bài toán trên thì đúng là cần phải dùng TRIM Mã: Sao chép. so = WorksheetFunction.Trim(Replace(so, ",", Application.International(xlDecimalSeparator))) Upvote 0 Po_Pikachu

Po_Pikachu

[email protected]
Tham gia 29/4/08 Bài viết 2,209 Được thích 3,572 Nghề nghiệp #VALUE! Cái TRIM chỉ dùng để cho việc ghi thừa khoảng cách thôi chứ đâu có tác dụng nhiều đâu! PHP: Sao chép. Function tach(so As String, Optional vitri As Integer = 1) Dim mang() As String so = Trim(Replace(so, ",", Application.International(xlDecimalSeparator))) i = InStr(1, so, Application.International(xlDecimalSeparator)) Select Case i Case Is <> 0: mang() = Split(so, " ") ReDim Preserve mang(0 To 3) tach = Val(IIf(mang(vitri - 1) = "m", 10, mang(vitri - 1))) Case Is = 0: ReDim Preserve mang(0 To 3) For i = 1 To 4 mang(i - 1) = Mid(so, i, 1) Next tach = Val(IIf(mang(vitri - 1) = "m", 10, mang(vitri - 1))) End Select End Function Em viết code như vầy đề sử lý trường hợp viết liền nè! Thân.

File đính kèm

  • Tach_so_thap_phan01.xls Tach_so_thap_phan01.xls 30 KB · Đọc: 48
Upvote 0 Duong_VBA

Duong_VBA

Thành viên chính thức
Tham gia 10/11/07 Bài viết 89 Được thích 26 Cảm ơn bác Po_Pikachu. Trường hợp cuối nhập 5,5 7,5 7 8,5 (Có các dấu cách) khi mở file của bác thì tách đúng nhưng khi Click kép vào ô nó chỉ còn phần nguyên là: 5 7 7 và 8 tại sao vậy bác. Bác chỉ giúp trường hợp có cả 2 loại số thập phân và nguyên xếp liền nhau nhé! Upvote 0 Po_Pikachu

Po_Pikachu

[email protected]
Tham gia 29/4/08 Bài viết 2,209 Được thích 3,572 Nghề nghiệp #VALUE! Cái này thì bác thử định dạng lại là General trong Format Cells xem. Có thể do định dạng không phù hợp thôi. Còn đây là file bổ sung thêm phần viết liền không dấu cách nè! Thân.

File đính kèm

  • Tach_so_thap_phan02.xls Tach_so_thap_phan02.xls 29.5 KB · Đọc: 40
Lần chỉnh sửa cuối: 7/2/09 Upvote 0 Nguyen Tien

Nguyen Tien

Thành viên mới
Tham gia 27/1/08 Bài viết 2 Được thích 18 Giới tính Nam Nghề nghiệp Giáo viên Bạn có thể dùng cái này của mình thì làm xong dễ thôi mà

File đính kèm

  • Tien ich Excel.rar Tien ich Excel.rar 539 KB · Đọc: 88
Lần chỉnh sửa cuối: 7/2/09 Upvote 0 T

tuyetbay

Thành viên hoạt động
Tham gia 23/1/08 Bài viết 154 Được thích 179 Thì bạn phải đưa cách lên chứ! Cứ đưa lên thoải mái đi. Chúng ta cùng học hỏi lẩn nhau. Thân. Upvote 0 L

Lannguyen3960

Thành viên mới
Tham gia 3/6/16 Bài viết 2 Được thích 0 Nhờ mọi người giúp đỡ VBA tách số thập phân ra khỏi chuổi VD ô A1 là P4.5 giờ tách thành 4.5 Upvote 0 V

VetMini

Đang đi tìm hòn đá
Tham gia 21/12/12 Bài viết 17,867 Được thích 24,792 Nghề nghiệp Thầy bói bài ta
Lannguyen3960 đã viết: Nhờ mọi người giúp đỡ VBA tách số thập phân ra khỏi chuổi VD ô A1 là P4.5 giờ tách thành 4.5 Nhấp chuột vào đây để mở rộng...
. Function VeBeA() As Variant If [A1].Value = "P4.5" Then VeBeA = "4.5" Else VeBeA = "No Bloody Clue" End Function Upvote 0 L

llanhlungll

Thành viên mới
Tham gia 12/11/12 Bài viết 12 Được thích 0 Tương tự tách vậy giúp em cái này với.. Xin cảm ơn

File đính kèm

  • Tach ngay.xlsm Tach ngay.xlsm 15.2 KB · Đọc: 13
Upvote 0 C

CHAOQUAY

Thành viên gắn bó
Tham gia 24/8/18 Bài viết 2,239 Được thích 2,754
llanhlungll đã viết: Tương tự tách vậy giúp em cái này với.. Xin cảm ơn Nhấp chuột vào đây để mở rộng...
Thử cùi bắp, tại B2 Mã: Sao chép. =TRIM(MID(SUBSTITUTE(SUBSTITUTE($A2,";",REPT(" ",100)),"-",REPT(" ",100)),(COLUMNS($B2:B2)-1)*100+1,100)) Upvote 0 L

llanhlungll

Thành viên mới
Tham gia 12/11/12 Bài viết 12 Được thích 0 Cảm ơn bạn mình làm được rồi dùng TextToColumns: Set ws = ThisWorkbook.Sheets("Tong Hop") ws.Columns(5).Copy ws.Columns(9).PasteSpecial xlPasteValues lR = Worksheets("Tong Hop").Cells(Rows.Count, 1).End(xlUp).Row 'lR = ws.Cells(.Rows.Count, "I").End(xlUp).Row 'lR = Excel.WorksheetFunction.CountA(ws.Range("I:I")) For i = 1 To lR ws.Cells(i, 9).Value = Excel.WorksheetFunction.Substitute(ws.Cells(i, 9).Value, " ", "") If Right(ws.Cells(i, 9).Value, 1) = ";" Then ws.Cells(i, 9).Value = Left(ws.Cells(i, 9).Value, Len(ws.Cells(i, 9).Value) - 1) End If Next 'TextToColumns ws.Range("I1:I20").TextToColumns Destination:=ws.Range("I1:I20"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, _ Tab:=True, Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1)), _ DecimalSeparator:=";", ThousandsSeparator:=",", TrailingMinusNumbers:=False Upvote 0 Bạn phải đăng nhập hoặc đăng ký để trả lời bài viết tại đây.

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

HeSanbi TaxCode v4.33 - Tra cứu mã số thuế từ tổng cục thuế, masothue và thuvienphapluat (6 người xem)
    • Thích
    • Yêu thích
  • HeSanbi
  • 27/11/25
  • Các Add-ins cho excel
Trả lời 19 Đọc 3K 5 phút trước HeSanbi HeSanbi Quang_Hải
  • Question Question
Chia sẻ một thuật toán đơn giản để trộn cells (4 người xem)
    • Thích
  • Quang_Hải
  • Hôm qua, lúc 10:14
  • Lập Trình với Excel
Trả lời 10 Đọc 164 26 phút trước HeSanbi HeSanbi ongke0711
  • Question Question
Tải hóa đơn điện tử (https://hoadondientu.gdt.gov.vn/) Excel Vba (7 người xem)
    • Thích
    • Yêu thích
    • Cảm ơn
  • ongke0711
  • 6/10/24
  • Lập Trình với Excel
5 6 7 Trả lời 617 Đọc 91K Hôm qua, lúc 23:04 pycckuu410 pycckuu410 HeSanbi
  • Question Question
Tạo Add-in, tệp Excel, Word, Access tự động cập nhật phiên bản mới từ Cloud cho chính nó (2 người xem)
    • Thích
    • Yêu thích
  • HeSanbi
  • Thứ hai lúc 20:14
  • Lập Trình với Excel
Trả lời 1 Đọc 156 Hôm qua, lúc 17:03 HeSanbi HeSanbi SA_DQ Copilot bình luận các ván cờ vua từng ngày. (1 người xem)
    • Thích
  • SA_DQ
  • 3/11/25
  • Chia sẻ
Trả lời 58 Đọc 2K Hôm qua, lúc 15:31 SA_DQ SA_DQ TranThanhPhong Hàm EXACT (2 người xem)
    • Thích
  • TranThanhPhong
  • 30/4/14
  • Dự án: Công thức & Hàm 97-2019
Trả lời 3 Đọc 9K Thứ ba lúc 15:52 ptm0412 ptm0412 giaiphap Add-Ins cho Excel 2007 -2016 32bit và 64bit (3 người xem)
    • Thích
    • Yêu thích
    • Ngạc nhiên
  • giaiphap
  • 8/8/15
  • Các Add-ins cho excel
4 5 6 Trả lời 518 Đọc 225K Thứ ba lúc 14:17 Gà Công Nghệ Gà Công Nghệ V Một Excel add-in vibe coding (2 người xem)
    • Thích
  • vietdang170
  • 28/1/26
  • Các Add-ins cho excel
Trả lời 18 Đọc 623 Thứ ba lúc 11:10 vietdang170 V H Xin giúp đặt điều kiện trong Conditional Formating (1 người xem)
  • hoanglocphat
  • Thứ hai lúc 14:23
  • Hỏi đáp những vấn đề khác
Trả lời 6 Đọc 121 Thứ ba lúc 10:13 Gà Con yêu VBA Gà Con yêu VBA HeSanbi
  • Đã giải quyết
FitRowXL v1.0 - Giãn dòng tự động và bổ trợ in ấn Excel (*01/2026 mới) (3 người xem)
    • Thích
    • Yêu thích
  • HeSanbi
  • 18/4/21
  • Lập Trình với Excel
Trả lời 68 Đọc 30K Thứ ba lúc 07:22 chothadiem chothadiem Nguyễn Duy Tuân
  • Dán lên cao
Phiên bản mới Add-in A-Tools AI v10 (2024) (3 người xem)
    • Thích
  • Nguyễn Duy Tuân
  • 13/9/24
  • BLUESOFTS: A-Excel, A-Tools
Trả lời 61 Đọc 12K Thứ hai lúc 15:13 Nguyễn Duy Tuân Nguyễn Duy Tuân mrjun80 Xin giúp hàm excel để tìm 1 số trong số có 2 chữ số (1 người xem)
  • mrjun80
  • Thứ bảy lúc 23:43
  • Hàm và công thức Excel
Trả lời 4 Đọc 153 Chủ nhật lúc 08:38 Gà Con yêu VBA Gà Con yêu VBA N Vấn đề về hiệu năng khi thực hiện ghép chuỗi trong VBA với tần suất lớn (1 người xem)
    • Thích
    • Cảm ơn
  • nguyendang95
  • 23/1/26
  • Excel và các ngôn ngữ lập trình khác
Trả lời 36 Đọc 982 Thứ bảy lúc 21:11 ptm0412 ptm0412 ongke0711
  • Question Question
Tra cứu thông tin mã số thuế (cập nhật lại code cũ)
    • Thích
    • Cảm ơn
    • Yêu thích
  • ongke0711
  • 24/7/25
  • Lập Trình với Excel
Trả lời 16 Đọc 2K Thứ bảy lúc 17:46 tuyethao T phuongnam366377 VNFastSearch – DLL tìm kiếm tiếng Việt tốc độ cao cho Excel VBA (1 người xem)
  • phuongnam366377
  • Thứ bảy lúc 14:41
  • Excel và các ngôn ngữ lập trình khác
Trả lời 0 Đọc 130 Thứ bảy lúc 14:41 phuongnam366377 phuongnam366377 N
  • Question Question
Tạo khung viền ô theo số trong ô (2 người xem)
    • Thích
  • Nguyễn Xuân Sơn
  • 29/1/26
  • Lập Trình với Excel
Trả lời 9 Đọc 221 Thứ bảy lúc 12:25 Mr.hieudoanxd Mr.hieudoanxd J Đừng chỉ "Cập nhật" dữ liệu. Hãy "Xếp chồng" chúng lên. (1 người xem)
    • Thích
  • jack nt
  • 29/1/26
  • Excel và các ngôn ngữ lập trình khác
Trả lời 5 Đọc 272 Thứ bảy lúc 10:27 ptm0412 ptm0412 T gửi email đến nhân viên công ty (1 người xem)
  • tuantv9
  • 26/1/26
  • Excel và các ngôn ngữ lập trình khác
Trả lời 2 Đọc 256 Thứ sáu lúc 09:28 nguyendang95 N H
  • Question Question
Code trích lọc mặt hàng theo thuế suất GTGT (1 người xem)
  • hoanglocphat
  • 29/1/26
  • Lập Trình với Excel
Trả lời 4 Đọc 237 Thứ sáu lúc 09:25 Maika8008 Maika8008 Nguyenkhang2404 Hỏi cách tổng hợp dữ liệu (1 người xem)
  • Nguyenkhang2404
  • 27/1/26
  • Hàm và công thức Excel
Trả lời 12 Đọc 372 29/1/26 ptm0412 ptm0412 Xem thêm… Chia sẻ: Facebook X Bluesky LinkedIn Reddit Pinterest Tumblr WhatsApp Email Chia sẻ Link

Thành viên có số lượng bài viết cao nhất tháng

  • HeSanbi 9
  • chothadiem 5
  • Gà Công Nghệ 5
  • vietdang170 4
  • Officexinh 3
  • chiendich 3
  • hoanglocphat 3
  • pycckuu410 3
  • HieuCD 2
  • DeTong 2
  • Gà Con yêu VBA 2
  • HUONGHCKT 1
  • vuvannguyen1972 1
  • Phuocam 1
  • ptm0412 1
  • Quang_Hải 1

Thành viên có điểm tương tác cao nhất tháng

  • HeSanbi 9
  • vietdang170 5
  • Gà Con yêu VBA 4
  • chiendich 3
  • DeTong 3
  • Phuocam 3
  • pycckuu410 3
  • Quang_Hải 3
  • HUONGHCKT 2
  • HieuCD 2
  • Officexinh 1

Thời gian đếm ngược.

000 Ngày 00 Giờ 00 phút 00 giây Thân mời tham dự sự kiện sinh nhật GPE 2025
  • Trang chủ
  • Diễn đàn
  • Lập Trình với Excel
  • Website này sử dụng cookies. Tiếp tục sử dụng trang này, đồng nghĩa với việc bạn chấp nhận website sử dụng cookies. Chấp nhận Tìm hiểu thêm.…
Back Top Bottom

Từ khóa » Tách Số Vba