Bạn có thể dùng lệnh Net view trong msdosCác anh chị vui lòng giúp em code VBA lấy danh sách tên các máy tính đang hoạt động trong mạng LAN (bao gồm cả trong nhóm Mshome và Workgroup). Kết quả có thể là Array hoặc xuất ra bảng tính.
Xin cảm ơn các anh chị.
Bạn thử thế này:Sao import ra file text không được nhỉ?
Run ở CMD thì import được.PHP:shell(net view > "C:\listcp.txt")
Shell "cmd.exe /c net view > C:\listcp.txt"
Tôi cũng không rõ danh sách các máy tính trong mạng lan của bạn như thế nào. Hiện tại ở cơ quan tôi có duyệt qua và có hiện các pc và serve trên lan.Hình như lệnh này không lấy trong nhóm Mshome.
Mình không biết dùng hàm API. Mong bạn tiếp tục giúp đỡTôi cũng không rõ danh sách các máy tính trong mạng lan của bạn như thế nào. Hiện tại ở cơ quan tôi có duyệt qua và có hiện các pc và serve trên lan.
Nếu vẫn chưa đạt nhu cầu của bạn, có lẽ cần làm theo hướng khác, có khi dùng thêm một số hàm API chăng (có thể là: WNetOpenEnum, WNetEnumResource).
Các anh chị vui lòng giúp em code VBA lấy danh sách tên các máy tính đang hoạt động trong mạng LAN (bao gồm cả trong nhóm Mshome và Workgroup). Kết quả có thể là Array hoặc xuất ra bảng tính.
Xin cảm ơn các anh chị.
Mình cung cấp cho bạn giải pháp lập trình API để có một kết quả lấy được danh sách máy tính online trong mạng LAN.
Dạ cám ơn anh , nhưng sao em bấm nút nó hổng lấy được danh sách máy tính , mà chỉ lấy được bảng thông báo :
Microsoft Excel has Stopped working![]()
Của bạn là Excel 32 hay 64/bit vậy?
window 8.1 x64 bit đó anh
Xin hỏi anh, code của anh đã xử lý được vấn đề của viehoai chưa anh? (do máy em chưa đủ cơ hội để test các trường hợp)Quan trọng Excel 32 hay 64. Mình sẽ upload code tương thích cả 2 nền tảng 32 và 64-bit.
Hình như lệnh này không lấy trong nhóm Mshome.
Quan trọng Excel 32 hay 64. Mình sẽ upload code tương thích cả 2 nền tảng 32 và 64-bit.
Xin hỏi anh, code của anh đã xử lý được vấn đề của viehoai chưa anh? (do máy em chưa đủ cơ hội để test các trường hợp)
Mình gửi lại phiên bản lấy danh sách tên máy tính đang online trong mạng LAN chạy trong Excel 32 và 64-bit.
thực sự thì anh chỉ thay Long thành LongPtr thôi chứ chưa từng thử trên máy 64 bit đúng không ? cũng không sao , nay mai rảnh em xem lại xem Crash ở đâu , vì có 1 số hàm API khi ở máy 32 bit bình thường nhưng cứ chạy trên máy 64 bit là Crash luôn dù cho thay kiểu gì đi nữa .
Đó là phương pháp làm tương thích 32 và 64-bit với các hàm API. Có thể máy bạn đang bị lỗi ở vấn đề khác? Các bạn dùng Excel 64-bit có bị lỗi vậy không?
Đó là phương pháp làm tương thích 32 và 64-bit với các hàm API. Có thể máy bạn đang bị lỗi ở vấn đề khác? Các bạn dùng Excel 64-bit có bị lỗi vậy không?
Public Declare PtrSafe Function NetServerEnum Lib "netapi32" _
(ByVal servername As LongPtr, _
ByVal level As LongPtr, _
buf As Any, _
ByVal prefmaxlen As LongPtr, _
entriesread As[SIZE=4][B] LongPtr[/B][/SIZE], _
totalentries As LongPtr, _
ByVal servertype As LongPtr, _
ByVal domain As LongPtr, _
resume_handle As LongPtr) As LongPtr
Dim dwEntriesread As [SIZE=4][B]Long[/B][/SIZE]
#If VBA7 Then
Public Declare PtrSafe Function NetServerEnum Lib "netapi32" _
(ByVal servername As LongPtr, _
ByVal level As LongPtr, _
buf As Any, _
ByVal prefmaxlen As LongPtr, _
entriesread As Long, _
totalentries As Long, _
ByVal servertype As Long, _
ByVal domain As LongPtr, _
resume_handle As Long) As Long
Public Declare PtrSafe Function NetApiBufferFree Lib "netapi32" _
(ByVal Buffer As LongPtr) As LongPtr
Public Declare PtrSafe Sub CopyMemory Lib "kernel32" _
Alias "RtlMoveMemory" _
(pTo As Any, uFrom As Any, _
ByVal lSize As LongPtr)
Public Declare PtrSafe Function lstrlenW Lib "kernel32" _
(ByVal lpString As LongPtr) As Long
Public Type SERVER_INFO_100
sv100_platform_id As LongPtr
sv100_name As LongPtr
End Type
Private ResultAddress As LongPtr
Public Function GetPointerToByteStringW(ByVal dwData As LongPtr) As String
Dim tmp() As Byte
Dim tmplen As Long
If dwData <> 0 Then
tmplen = lstrlenW(dwData) * 2
If tmplen <> 0 Then
ReDim tmp(0 To (tmplen - 1)) As Byte
CopyMemory tmp(0), ByVal dwData, tmplen
GetPointerToByteStringW = tmp
End If
End If
End Function
#Else
#End If