Giúp Em Hàm VBA Tách Số Thập Phân Ra Khỏi Chuỗi? | Giải Pháp Excel
Có thể bạn quan tâm
- 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
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
- Đóng góp
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 Tìm kiếm Tìm nâng cao…- Tìm bài viết mới
- Tìm theo chuyên mục
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
- Thread starter Thread starter Duong_VBA
- Ngày gửi Ngày gửi 6/2/09
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
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
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)
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
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
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
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)
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
[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
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,981 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
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
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
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,981 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
[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
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
[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
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
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,788 Nghề nghiệp Thầy bói bài taLannguyen3960 đã 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
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
- huuthang_bd
- 30/12/13
- Xây dựng ứng dụng.
- levovantoan
- Thứ sáu lúc 23:25
- Giải thích, gỡ rối, xử lý lỗi công thức
- GPE-Trợ Lý
- Hôm qua, lúc 10:02
- Học tập Online
- PhanTuHuong
- 14/12/25
- Thư giãn
- hoangvucntt
- Thứ bảy lúc 10:16
- Cấu trúc dữ liệu Excel và việc Xử lý dữ liệu
- Na7979
- Thứ bảy lúc 11:40
- Lọc và sắp xếp dữ liệu
- dieppk.nb92
- 14/12/25
- Hàm và công thức Excel
- kaoehtkid
- 15/12/25
- Những vấn đề chung
- HeSanbi
- 13/12/25
- Xử lý chuỗi ký tự
- Nguyenkhang2404
- 24/7/25
- Hàm và công thức Excel
- tiny1010
- 16/3/10
- Cấu trúc dữ liệu Excel và việc Xử lý dữ liệu
- Na7979
- Thứ sáu lúc 14:01
- Google Sheets
- Question Question
- duongnhuxuyen
- 12/12/25
- Lập Trình với Excel
- phamdinh.huy.aladin@gmail
- 15/12/25
- Hàm và công thức Excel
- Mr_Siro
- Thứ tư lúc 10:57
- Giải thích, gỡ rối, xử lý lỗi công thức
- ptthuongtn
- Thứ tư lúc 15:15
- Hàm và công thức Excel
- skygatevn
- Thứ tư lúc 11:59
- Hướng dẫn sử dụng các hàm trong Excel
- PhanTuHuong
- 10/12/25
- Câu lạc bộ hoạt động xã hội
- GPE-Trợ Lý
- 24/11/25
- Câu lạc bộ hoạt động xã hội
- Đã giải quyết
- HeSanbi
- 30/5/20
- Lập Trình với Excel
Thành viên có số lượng bài viết cao nhất tháng
- Maika8008 41
- thanthanhan 23
- dungpham01 19
- ongke0711 19
- Phan Thế Hiệp 17
- ptm0412 17
- eagle12 16
- nguyenanhtruong2409 16
- HUONGHCKT 12
- vic_it 11
- nhhnam 10
- pycckuu410 10
- dieppk.nb92 10
- Vũ Hải Sơn 9
- HeSanbi 9
- le_vis 8
- Gà Con yêu VBA 8
- bsbnhh 7
- duongnhuxuyen 7
- Hana2610 6
Thành viên có điểm tương tác cao nhất tháng
- Phan Thế Hiệp 86
- Maika8008 34
- thanthanhan 20
- ongke0711 17
- ptm0412 17
- HeSanbi 15
- dungpham01 11
- HUONGHCKT 9
- eagle12 9
- SA_DQ 9
- Cúc Hr 8
- dieppk.nb92 6
- Mr.hieudoanxd 5
- befaint 5
- pycckuu410 5
- Hoàng Tuấn 868 4
- Phuocam 4
- nguyenanhtruong2409 4
- nhhnam 2
- Gà Con yêu VBA 2
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.…
Từ khóa » Tách Số Vba
-
Tách Số Từ Chuỗi Ký Tự Bằng Hàm VBA Trong Excel 7/2022
-
Cách Tách Số Ra Khỏi Chuỗi Ký Tự Trong Excel Nhanh Nhất
-
Tách Số Từ Chuỗi Ký Tự Bằng Hàm VBA Trong Excel ... - YouTube
-
Cách Tách Số Và Chữ Ra Khỏi Chuỗi Trong Excel (Không Cần VBA ...
-
Excel : Dùng Hàm để Tách Số Và Dạng Text Ra Khỏi Một ô - Infocom
-
Tách Số Ra Khỏi Chuỗi Trong Excel - Thủ Thuật Phần Mềm
-
Tách Riêng Số Ra Khỏi Chuỗi - Học Excel Online Miễn Phí
-
Cách Tách Số Và Chữ Ra Khỏi Chuỗi Trong Excel (Không Cần VBA)
-
Tách Số Từ Chuỗi Ký Tự Bằng Hàm VBA Trong Excel (Tách Số Ra ...
-
Tách Số Trong Dãy Số Excel - Re:Monster
-
Hướng Dẫn Cách Tách Số Ra Khỏi Chuỗi Trong Excel Có Ví Dụ Minh Họa ...
-
Tách Số Từ Chuỗi Ký Tự Bằng Hàm VBA Trong Excel ... - Tài Chính 4u
-
Công Thức Tách Số Và Chữ Trong Excel
-
6 Cách Tách Số Trong Chuỗi Trong Excel (Không Cần Vba) 3/2022