Định dạng dữ liệu với các định dạng số tùy chỉnh bằng VBA trong Microsoft Excel
Trong bài viết này, chúng tôi sẽ tạo macro để định dạng dữ liệu đã cho ở định dạng số tùy chỉnh mong muốn bằng cách sử dụng VBA.
Dữ liệu thô cho ví dụ này bao gồm dữ liệu nhóm bán hàng. Dữ liệu thô chứa tên, id sản phẩm, giá sản phẩm, số lượng đã bán và tổng doanh số.
Trước khi chạy macro, người ta phải chỉ định định dạng số tùy chỉnh trong cột P và số cột mà người ta muốn áp dụng định dạng số tùy chỉnh trong cột Q.
Nhấp vào nút “Định dạng” để chạy macro “Định dạng”.
Macro sẽ thay đổi định dạng của dữ liệu đã cho theo định dạng số tùy chỉnh được chỉ định.
Giải thích logic
Macro này chọn định dạng số từ cột P và gán định dạng số cho các cột được chỉ định bởi số cột trong cột Q.
Trong macro này, chúng tôi đã sử dụng hai vòng lặp DO UNTIL để lặp lại. Đầu tiên DO UNTIL Vòng lặp được sử dụng để lặp cho đến khi tất cả các định dạng số được áp dụng cho các cột. Vòng lặp DO UNTIL thứ hai được sử dụng để tìm tất cả các số cột khác nhau được chỉ định và phân tách bằng dấu phẩy (,).
Giải thích mã
strCol = Left (txt, InStr (txt, “,”) – 1)
Đoạn mã trên được sử dụng để phân tách số cột khỏi chuỗi chứa tất cả các số cột được phân tách bằng dấu phẩy (,).
Columns (CInt (strCol)). NumberFormat = wks.Cells (intRow, 16) .Value Đoạn mã trên được sử dụng để áp dụng định dạng số tùy chỉnh trên cột được chỉ định.
txt = Right (txt, Len (txt) – InStr (txt, “,”))
Đoạn mã trên được sử dụng để tách chuỗi còn lại sau khi xóa số cột khỏi chuỗi đã xác định.
Vui lòng theo dõi bên dưới để biết mã
Option Explicit Sub Formatting() 'Declaring variables Dim wks As Worksheet Dim intRow As Long Dim strCol As String Dim txt As String 'Initializing the variables Set wks = Worksheets("Format") intRow = 4 'Looping in 16th column until empty value is found Do Until IsEmpty(wks.Cells(intRow, 16)) 'Assigning the value of custom number format txt = wks.Cells(intRow, 17) 'Looping and finding all the column number separated by comma(,) Do Until InStr(txt, ",") = 0 'Getting the column number strCol = Left(txt, InStr(txt, ",") - 1) 'Assigning the number format Columns(CInt(strCol)).NumberFormat = wks.Cells(intRow, 16).Value 'Truncating the string for finding the next column number after the comma(,) txt = Right(txt, Len(txt) - InStr(txt, ",")) Loop 'Assigning the number format Columns(CInt(txt)).NumberFormat = wks.Cells(intRow, 16).Value intRow = intRow + 1 Loop End Sub
Nếu bạn thích blog này, hãy chia sẻ nó với bạn bè của bạn trên Facebook và Facebook.
[_GoBack] # Chúng tôi rất muốn nghe ý kiến của bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện công việc của mình và cải thiện nó cho bạn. Viết thư cho chúng tôi [email protected]