Thay Text bằng định dạng Value

Liên hệ QC

hoahuongduong1986

Thành viên thường trực
Tham gia
14/11/18
Bài viết
346
Được thích
40
Kính gửi Anh chị,
Vùng A2:D11 là số liệu em xuất ra từ hệ thống phần mềm mà nó có định dạng Text. Em muốn làm code biến định dạng text đó thành định dạng Số trước khi xử lý số liệu. Em có Record mà không được ạ. Anh chị xem trợ giúp sửa giúp em với ạ. Em cảm ơn ạ.
 

File đính kèm

Ở cột bất kỳ đặt công thức =value(A2)
 
Upvote 0
Chọn vùng A2:A11 (bôi đen)
Bên tay phải cell A2 có cái hình vuông và trong hình vuông có dấu !
Chọn mũi tên xổ xuống và chọn "Convert to number"
 
Upvote 0
PHP:
'Chậm'
Sub ConvertTextToNumber_Cach1()
Dim R
For Each r In ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants)
    If IsNumeric(r) Then r.Value = CSng(r.Value)
Next
End Sub
'Nhanh'
Sub ConvertTextToNumber_Cach2()
With ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants)
   .NumberFormat = "General"
   .Value = .Value
End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Kính gửi Anh chị,
Vùng A2:D11 là số liệu em xuất ra từ hệ thống phần mềm mà nó có định dạng Text. Em muốn làm code biến định dạng text đó thành định dạng Số trước khi xử lý số liệu. Em có Record mà không được ạ. Anh chị xem trợ giúp sửa giúp em với ạ. Em cảm ơn ạ.
Tham khảo
Mã:
Sub ChuyenNumber()
    Dim ws As Worksheet
    Dim rng As Range
    Dim lastRow As Integer
Application.ScreenUpdating = False
Set ws = ActiveSheet
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
Set rng = Range("A2:D" & lastRow)
For Each cell In rng
    cell.Value = Val(cell.Value)
Next
rng.NumberFormat = "General"
Application.ScreenUpdating = True
End Sub
 
Upvote 0
Tham khảo
Mã:
Sub ChuyenNumber()
    Dim ws As Worksheet
    Dim rng As Range
    Dim lastRow As Integer
Application.ScreenUpdating = False
Set ws = ActiveSheet
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
Set rng = Range("A2:D" & lastRow)
For Each cell In rng
    cell.Value = Val(cell.Value)
Next
rng.NumberFormat = "General"
Application.ScreenUpdating = True
End Sub
Em cảm ơn ạ. Số liệu em khoảng 200k dòng, nó chạy một phút chưa thấy đâu anh ạ. Có cách gì cải tiến không ạ
 
Upvote 0
Kính gửi Anh chị,
Vùng A2:D11 là số liệu em xuất ra từ hệ thống phần mềm mà nó có định dạng Text. Em muốn làm code biến định dạng text đó thành định dạng Số trước khi xử lý số liệu. Em có Record mà không được ạ. Anh chị xem trợ giúp sửa giúp em với ạ. Em cảm ơn ạ.
Thử code này xem sao
Mã:
Sub Text_Number()
Dim Mang
With Sheet1
    Mang = .Range("A2:D11")
    .Range("A2:D11").Clear
    .Range("A2:D11") = Mang
    .Range("A1").CurrentRegion.Borders.LineStyle = 1
End With
End Sub
 
Upvote 0
Em cảm ơn ạ. Số liệu em khoảng 200k dòng, nó chạy một phút chưa thấy đâu anh ạ. Có cách gì cải tiến không ạ
Nếu vậy dùng như vậy xem cải thiện không nhé

Mã:
Sub ChuyenNumber()
Application.ScreenUpdating = False
    With Range("A2", "D60000")
        .NumberFormat = "General"
        .Value = .Value
    End With
Application.ScreenUpdating = True
End Sub
 
Upvote 0
Kính gửi Anh chị,
Vùng A2: H11 là số liệu em xuất ra từ hệ thống phần mềm mà nó có định dạng Text. Em muốn làm code biến định dạng text đó thành định dạng Số trước khi xử lý số liệu. Em có Record mà không được ạ. Anh chị xem trợ giúp sửa giúp em với ạ. Em cảm ơn ạ.
Số liệu em khoảng 200k dòng, nó chạy một phút chưa thấy đâu anh ạ. Có cách gì cải tiến không ạ
Bạn thử code sau với dữ liệu 200k dòng thì không thành vấn đề.
Mã:
Sub FormatNumber()
    Sheet1.Range("A1").CurrentRegion.Offset(1).Value = _
    Sheet1.Range("A1").CurrentRegion.Offset(1).Value
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom