Định dạng Excel cho địa chỉ MAC.

Định dạng Excel cho địa chỉ MAC.

Tôi làm việc trong lĩnh vực CNTT, thường xuyên phải theo dõi địa chỉ MAC. Tôi đang cố gắng sử dụng Office 365 Excel nơi tôi muốn định dạng các ô như sau:

A1-B2-C3-D4-E5-F6

Vì vậy, lý tưởng nhất là khi tôi nhập thông tin dưới dạng a1b2c3d4e5f6, nó sẽ viết hoa và thêm dấu gạch ngang. Nếu tôi làm ##-##-##-##-##-## và tôi chỉ thêm số (như 112233445566), nó sẽ định dạng bằng dấu gạch ngang (11-22-33-44-55-66). Tuy nhiên khi sử dụng văn bản thì nó không tạo được định dạng. Có gợi ý gì không?

***Bài viết đã được chuyển đến chủ đề phụ Office thích hợp.***




Trả lời:

Ồ, tôi sẽ không đặt cược vào điều đó! Hãy thử mã bên dưới (giả sử macro được chấp nhận). Mở sổ làm việc của bạn, chọn trang tính mà bạn sẽ nhập địa chỉ MAC vào. Nhấp chuột phải vào tab tên và chọn Xem mã từ danh sách. Sao chép mã bên dưới và dán vào mô-đun được trình bày cho bạn. Thay đổi 2 giá trị Const đầu tiên trỏ đến cột B và hàng 2 để phù hợp với thực tế của bảng tính của bạn.

Đóng Trình soạn thảo VBA ([Alt]+[Q] hoặc dấu-x màu đỏ). Hãy thử bằng cách nhập một số địa chỉ MAC vào cột. Nếu bạn thích và muốn giữ nó, hãy lưu sổ làm việc dưới dạng sổ làm việc có hỗ trợ macro, nhập .xlsm hoặc .xlsb.

Bảng tính phụ riêng tư_Change (Mục tiêu ByVal dưới dạng phạm vi)
'chỉ giả định 1 cột cho các mục địa chỉ MAC
'nhưng có thể được điều chỉnh để biết thêm

'thay đổi các hằng số này để xác định bảng tính của bạn
Const maEntryColumn = "B" ' Địa chỉ MAC được nhập vào cột này
Const maFirstRow = 2 ' hàng đầu tiên có thể có địa chỉ MAC trong đó

Const sepChar = "-" ' để đặt giữa mỗi cặp phần địa chỉ
Const macLength = 12' # ký tự trong địa chỉ MAC
Const macValidCharacters = "ABCDEF01234567890"
'các biến làm việc
Bộ đếm vòng lặp Dim LC As Integer '
Dim tempMACĐịa chỉ dưới dạng chuỗi
Nếu IsEmpty(Target) _
Hoặc Target.Cells.Count > 1 _
Hoặc Target.Column <> Range(maEntryColumn & 1).Column _
Hoặc Target.Row < maFirstRow Sau đó
Thoát Sub ' không có việc gì để làm
Kết thúc nếu
'trong trường hợp họ gõ - vào như một phần của mục nhập
tempMACAddress = UCase(Trim(Thay thế(Target.Text, sepChar, "")))
'kiểm tra trường hợp đặc biệt: mục nhập là tất cả các chữ số, không có chữ cái và
'có ít hơn 12 ký tự. Có nghĩa là chúng tôi có thể đã bỏ số 0 ở đầu
'đặt chúng trở lại
Nếu Len(tempMACAddress) < macLength thì
Đối với LC = 1 To Len(tempMACAddress)
Nếu Mid(tempMACAddress, LC, 1) < "0" _
Hoặc Mid(tempMACAddress, LC, 1) > "9" Sau đó
Thoát For ' thoát sớm
Kết thúc nếu
Kế tiếp
Nếu LC = Len(tempMACAddress) + 1 thì
'đều là chữ số, thêm số 0 đứng đầu
tempMACĐịa chỉ = _
Chuỗi(macLength - Len(tempMACAddress), "0") & tempMACAddress
Kết thúc nếu
Kết thúc nếu
Nếu Len(tempMACAddress) <> macLength thì
MsgBox "Mục nhập không phù hợp với độ dài Địa chỉ MAC của " & macLength, _
vbOKOnly + vbExclaim, "Mục nhập không hợp lệ"
Thoát phụ
Kết thúc nếu
'xác thực tất cả các ký tự hợp lệ
Đối với LC = 1 To Len(tempMACAddress)
Nếu InStr(macValidCharacters, Mid(tempMACAddress, LC, 1)) = 0 thì
MsgBox "Mục nhập có ký tự Địa chỉ MAC không hợp lệ: " & Mid(tempMACAddress, LC, 1), _
vbOKOnly + vbExclaim, "Mục nhập không hợp lệ"
Thoát phụ
Kết thúc nếu
Kế tiếp
'có vẻ hợp lệ, định dạng nó lên
Application.EnableEvents = False ' để ngăn việc quay lại quy trình này
Mục tiêu = Left(tempMACAddress, 2) & sepChar _
& Mid(tempMACAddress, 3, 2) & sepChar _
& Mid(tempMACAddress, 5, 2) & sepChar _
& Mid(tempMACAddress, 7, 2) & sepChar _
& Mid(tempMACAddress, 9, 2) & sepChar _
& Phải(tempMACAddress, 2)
Application.EnableEvents = Đúng
Kết thúc phụ

Comments

Popular posts from this blog

Excel 2016 - mở tất cả các tệp trong MỘT phiên bản

Điều tôi muốn làm trong Excel 2010 là tạo một nút tùy chỉnh và gắn nó vào thanh công cụ Truy nhập nhanh và chạy một macro cụ thể.

Khẩn cấp - File Excel chứa các ký tự đặc biệt ở họ và tên liên hệ