Xin chỉ giáo VBA code để chép IP của máy tính vào ô A1

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

leorio.1989

Thành viên chính thức
Tham gia
14/9/19
Bài viết
50
Được thích
2
Kính chào các bác, đã lâu em mới quay lại diễn đàn, hôm nay em có 1 bài toán mà tìm trên google mãi không giải được, kính mong các bác chỉ dẫn giúp.
Đó là em có 1 File Excel, muốn ghi IP của máy tính sử dụng vào ô A1 (hoặc bất kỳ ô nào khác có thể tùy biến) để khi in dữ liệu ra sẽ ghi lại dải IP này (Lúc này em sẽ biết dữ liệu được in ra từ máy tính nào)
Xin chân thành cảm ơn các bác.

Ví dụ IP máy tính của em là 192.168.1.14 thì VBA sẽ tự chạy để ghi lại cái IP này ở ô A1
Khi em chuyển File sang máy tính xách tay để in thì IP của em sẽ là 192.168.1.22, lúc này VBA sẽ tự chạy để ghi lại dải IP đó vẫn ở ô A1.

Các bác giải được cho em xin luôn File Excel để em nghiên cứu ạ.

Đội ơn các bác !
Trân trọng !
 
Các máy tính cty bạn có được IT quản lý, thiết lập IP cố định không hay là IP động? Nếu là IP động thì cái địa chỉ đó đâu còn giá trị để xác định máy nào.
 
Upvote 0
Nghề gú gồ dở bẹt mà cũng bày đặt chơi với IP address.

Trên mạng họ chỉ luôn ngay phong phóc

1697431412533.png
 
Upvote 0
Nghề gú gồ dở bẹt mà cũng bày đặt chơi với IP address.

Trên mạng họ chỉ luôn ngay phong phóc

View attachment 295775
Em thử theo mà nó không nhận bác à
Bài đã được tự động gộp:

Các máy tính cty bạn có được IT quản lý, thiết lập IP cố định không hay là IP động? Nếu là IP động thì cái địa chỉ đó đâu còn giá trị để xác định máy nào.
IP tĩnh bác à
Cái em cần là dòng IPv4 Address. . . . . . . . . . . : 192.168.1.07 trong cmd / ipconfig được ghi vào File Excel mỗi khi ấn lệnh in hoặc khi ấn save ạ
 
Lần chỉnh sửa cuối:
Upvote 0
Thử code dưới đây xem sao
PHP:
Option Explicit
Sub GetIPAddress()
    Dim objWMIService As Object
    Dim colItems As Object
    Dim objItem As Object
    Dim strIPAddress ' As String

    ' Tạo đối tượng WMI để truy cập thông tin mảng
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

    ' Lay tat ca các doi tuong mang
    Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration")

    ' Lap qua các doi tuong de tìm dia chi IP (IPv4)
    For Each objItem In colItems
        If Not IsNull(objItem.IPAddress) Then
            ' Lap qua mang dia chi IP
            For Each strIPAddress In objItem.IPAddress
                If InStr(strIPAddress, ":") = 0 Then
                    ' Ðam bao dây là dia chi IPv4 va ghi vao A1
                    Range("A1").value = strIPAddress
                End If
            Next
        End If
    Next

   ' Giai phóng bo nho
    Set objWMIService = Nothing
    Set colItems = Nothing
    Set objItem = Nothing
End Sub
 
Upvote 0
Thử code dưới đây xem sao
PHP:
Option Explicit
Sub GetIPAddress()
    Dim objWMIService As Object
    Dim colItems As Object
    Dim objItem As Object
    Dim strIPAddress ' As String

    ' Tạo đối tượng WMI để truy cập thông tin mảng
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

    ' Lay tat ca các doi tuong mang
    Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration")

    ' Lap qua các doi tuong de tìm dia chi IP (IPv4)
    For Each objItem In colItems
        If Not IsNull(objItem.IPAddress) Then
            ' Lap qua mang dia chi IP
            For Each strIPAddress In objItem.IPAddress
                If InStr(strIPAddress, ":") = 0 Then
                    ' Ðam bao dây là dia chi IPv4 va ghi vao A1
                    Range("A1").value = strIPAddress
                End If
            Next
        End If
    Next

   ' Giai phóng bo nho
    Set objWMIService = Nothing
    Set colItems = Nothing
    Set objItem = Nothing
End Sub
Bác ơi nhận luôn bác ạ, nhưng bác chế thêm cái code khi em save hoặc in thì ghi lại cái dải IP vào ô A1 được không ạ ? Em chép code của bác vào khi đổi máy thì nó vẫn nhận IP cũ của em ở trên máy cá nhân ạ.


Cảm ơn bác vì đã giúp ạ.

Kính bác !
 
Upvote 0
Khi đổi máy bạn có chạy lại code chưa?
 
Upvote 0
Bạn tham khảo workbook event, Beforesave. Hoặc worksheet_activate, deactivate... trong đó gọi sub kia là được.
 
Upvote 0
Bạn paste toàn bộ lên đây đi. Đánh dấu chỗ báo lỗi nhé.
 
Upvote 0
Bạn paste toàn bộ lên đây đi. Đánh dấu chỗ báo lỗi nhé.
Đây bác ạ: Ý tưởng của em là cứ mở File lên là code nó chạy thôi ạ
Private Sub Worksheet_Activate()
Sub GetIPAddress()
Dim objWMIService As Object
Dim colItems As Object
Dim objItem As Object
Dim strIPAddress ' As String

' T?o d?i tu?ng WMI d? truy c?p thông tin m?ng
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

' Lay tat ca các doi tuong mang
Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration")

' Lap qua các doi tuong de tìm dia chi IP (IPv4)
For Each objItem In colItems
If Not IsNull(objItem.IPAddress) Then
' Lap qua mang dia chi IP
For Each strIPAddress In objItem.IPAddress
If InStr(strIPAddress, ":") = 0 Then
' Ðam bao dây là dia chi IPv4 va ghi vao A1
Range("A1").Value = strIPAddress
End If
Next
End If
Next

' Giai phóng bo nho
Set objWMIService = Nothing
Set colItems = Nothing
Set objItem = Nothing
End Sub
 
Upvote 0
Đây bác ạ: Ý tưởng của em là cứ mở File lên là code nó chạy thôi ạ
Thế là tốt rồi chịu khó dò đi là ra thôi .. ai cũng thế cả có những bước tập đi ...

Vui 1 tẹo ... nhìn thấy code là còn hỏi diết dài hơn đạn --=0
 
Upvote 0
Đây bác ạ: Ý tưởng của em là cứ mở File lên là code nó chạy thôi ạ
Nó cứ báo lỗi "compile error expected end sub" kiểu như không kết thúc được lệnh khi có Private Sub Worksheet_Activate() chèn vào ý ạ.

Em loay hoay từ hôm qua google + dịch các kiểu ko xong được việc :(
 
Upvote 0
Đây bác ạ: Ý tưởng của em là cứ mở File lên là code nó chạy thôi ạ
Góp vui: Bạn thử đưa cái sub ấy vào trong sự kiện Workbook_Open xem sao bằng cách thay Dòng
Private Sub Worksheet_Activate()
thành
Private Sub Workbook_Open()
save->close-> Mở lại file.
 
Upvote 0
Góp vui: Bạn thử đưa cái sub ấy vào trong sự kiện Workbook_Open xem sao bằng cách thay Dòng
Private Sub Worksheet_Activate()
thành
Private Sub Workbook_Open()
save->close-> Mở lại file.
Bác ơi không được bác ạ. Em chuyển File sang máy khác code nó không tự nhận dải IP, vẫn phải vào Ctrl+F11 để ấn run thì code mới chạy ra dải IP của máy tính mới ở ô A1 ạ
 
Upvote 0
Web KT
Back
Top Bottom