Viết Code chỉ số trên cho ký hiệu đặc biệt Mét vuông (1 người xem)

Liên hệ QC

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

baquang1984

Thành viên tiêu biểu
Tham gia
3/6/10
Bài viết
429
Được thích
44
Nghề nghiệp
Kỹ sư Lâm nghiệp
Dưới đây là Code VBA để thực hiện In hàng loạt các hộ gia đình trong đơn cấp GCN, tuy nhiên vấn đề gặp phải là định dạng đơn vị mét vuông có chỉ số trên cho ký hiệu đặc biệt (m[SUP]2[/SUP]), thì em không biết định dạng trong Code VBA như thế nào mọi người giúp em vấn đề này được không ạ ?
- Khi Click chuột vào Button Printer ở Sheets"BIEU" thì các bản in ra đều được định dạng (m[SUP]2[/SUP])
Mã:
Public Sub LOC_BIEU1()
On Error Resume Next
Dim sArr(), dArr(1 To 5, 1 To 1), dArr2(1 To 1, 1 To 1), I As Long, N As Long
With Sheets("DATA")
    sArr = .Range(.[A2], .[A65536].End(xlUp)).Resize(, 35).Value
End With
With Sheets("BIEU")
DK = .[D2].Value: Met = .[F2].Value:: DienTich = .[F3].Value
For I = 1 To UBound(sArr, 1)
    If sArr(I, 1) = DK Then
         'Dien thong tin CQL1
        If sArr(I, 2) <> "" Then
                dArr(1, 1) = sArr(I, 2)
            Else
                dArr(1, 1) = vbNullString
        End If
        Exit For
    End If
Next I
For N = I To UBound(sArr, 1)
    If sArr(N, 1) = DK Then
[I][B]        dArr2(1, 1) = DienTich & sArr(I, 10) & Met[/B][/I]
    End If
Next N
Application.EnableEvents = False
.[E2].Value = dArr
.[e4].Value = dArr2
Application.EnableEvents = True
End With
End Sub
Em cảm ơn mọi người!
 

File đính kèm

Chẳng lẽ máy chỉ để làm cái việc này không thôi sao?

Mà còn chuyện máy cơ quan thì sao?

Đừng nói với tui là lúc cần chay macro này, ta định dạng lại trong Control panel; Sau đó, 1 khi xong việc lại trả về định dạng ban đầu?

Chuyện này sẽ fiền fức hơn chuyện viết 1 hàm người dùng diễn dịch số hệ Anh sang chuỗi số hệ Fáp ( 1,135.25 => Dien tích là : 1.135,25 m2)
Những ai làm việc theo hệ thống văn bản VN thì phải tự biết mà chuyển định dạng số sang TCVN. Em đã từng gặp trường hợp hồ sơ thanh toán giá trị xây lắp công trình bị kho bạc từ chối vì định dạng số không đúng tiêu chuẩn VN. Động đến tài chính, kế toán là phải chính xác từ ly!!!
 
Upvote 0
Chắc chắn bạn ấy chưa tùy chỉnh định dạng số trong Control Panel!!!
Em cảm ơn anh vu_tuan_manh_linh như anh nói em phải thay đổi định dạng dâu chấm "." và phẩy "," trong Control Panel thì Code chạy bình thường không cần phải định dạnh nhưng câu lệnh ở trên.
Tuy nhiên trong Excel em đã định dạng trong Option của excel là không dùng dấu chấm "." dấu phẩy "," của hệ thống mà lệnh VBA vẫn nhận theo ký tự của hệ thống
Cảm ơn mọi người đã giúp đỡ
 
Upvote 0
Rốt lại cũng chẳng biết bạn muốn gì, chạy không được là sao?
Sử dụng Function cho nó chạy đi.
[GPECODE=vb]Public Function Met2(Rng As Range) As String
Met2 = Format(Rng, "#,##0.00") & " m" & Chr(178)
End Function[/GPECODE]
Hoặc sử dụng câu lệnh này cho công việc gì đó của bạn.
Em cảm ơn anh Ba Tê công việc của em đơn giản chỉ cần hiển thị dấu phẩy ở phần thập phân thôi VD 12345,6 không cân phải 12.345,6
Code này em viết không biết có đúng không ạ
Mã:
Public Function Met2(Rng As Range) As String
Met2 = Replace(Rng, ".", ",") & " m" & Chr(178)
End Function
Em cảm ơn mọi người đã giúp đỡ nhiệt tình cho những vấn đề em hỏi trên diễn đàn!
 

File đính kèm

Upvote 0
Em cảm ơn anh Ba Tê công việc của em đơn giản chỉ cần hiển thị dấu phẩy ở phần thập phân thôi VD 12345,6 không cân phải 12.345,6
Code này em viết không biết có đúng không ạ
Mã:
Public Function Met2(Rng As Range) As String
Met2 = Replace(Rng, ".", ",") & " m" & Chr(178)
End Function
Em cảm ơn mọi người đã giúp đỡ nhiệt tình cho những vấn đề em hỏi trên diễn đàn!
Tôi không biết máy bạn cài trong Control Panel thế nào, máy tôi trong Control Panel định dạng số là 1.000,25 nên không cần repalce gì cả.
 
Upvote 0
Tôi không biết máy bạn cài trong Control Panel thế nào, máy tôi trong Control Panel định dạng số là 1.000,25 nên không cần repalce gì cả.
Máy của em không cài đặt lại trong Control Panel bởi vì một số phần mềm địa chính khi thay đổi định dạng dấu chấm và dấu phẩy trong Control Panel thì nó không chạy được.
Em thay đổi ngay trong Options của Excel ở mục Advanced ----> Use system separators thay đổi ngược lại là dấu phẩy ở dòng trên còn dấu chấm ở dòng dưới
Thanks all
 
Upvote 0
Trong máy tôi thì hàm trên Replace chẳng có tác dụng gì.
Đúng rồi bác ở trên nói: "trở thành 1,000,25" là em nhầm. Vì số 1.000,25 có dấu chấm "." là do định dạng, thực chất nó chỉ là 1000,25. Nên khi Replace chảng có tác dụng gì. Thanks bác đã nhắc nhở!
 
Upvote 0
Trong máy tôi thì hàm trên Replace chẳng có tác dụng gì.
Ở đây, mọi người muốn giúp chủ topic có được dữ liệu truy xuất đúng ý trong mọi trường hợp, nên mới cần cái vụ replace anh ạ! Nếu máy nào cũng thay đổi định dạng trong control panel thì format() là đủ rồi!
 
Upvote 0
Ở đây, mọi người muốn giúp chủ topic có được dữ liệu truy xuất đúng ý trong mọi trường hợp, nên mới cần cái vụ replace anh ạ! Nếu máy nào cũng thay đổi định dạng trong control panel thì format() là đủ rồi!
Anh Manh_Linh đúng ý em rồi
 
Upvote 0
Thử thêm cách này: bôi đen vùng muốn đổi và chạy code

Mã:
Sub m2m3()
    With Selection
        .Replace "m2", "m" & Chr(178), 2
        .Replace "m3", "m" & Chr(179), 2
    End With
End Sub

Hoặc không muốn bôi đen thì

Mã:
Sub m2m3()
    With Cells
        .Replace "m2", "m" & Chr(178), 2
        .Replace "m3", "m" & Chr(179), 2
    End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Trả lời
14
Đọc
5K
Back
Top Bottom