假设我已连接到test.server.com
用于我的Internet访问。有没有办法让该字符串使用VBA返回?如何在Excel VBA中获取当前网络的名称?
扩大,按你的要求(抱歉,网络的东西我不是很了解):
下指的是Windows 7企业版:如果你导航到内的“网络和共享中心”控制面板,这将是'域名网络'的名称。或者,单击任务栏中的网络图标,将显示该网络名称下方的“Internet访问”。
假设我已连接到test.server.com
用于我的Internet访问。有没有办法让该字符串使用VBA返回?如何在Excel VBA中获取当前网络的名称?
扩大,按你的要求(抱歉,网络的东西我不是很了解):
下指的是Windows 7企业版:如果你导航到内的“网络和共享中心”控制面板,这将是'域名网络'的名称。或者,单击任务栏中的网络图标,将显示该网络名称下方的“Internet访问”。
你可以从Windows的基础API与GetComputerNameEx的DNS主机名和/或域名:
Option Explicit
Enum COMPUTER_NAME_FORMAT
ComputerNameNetBIOS
ComputerNameDnsHostname
ComputerNameDnsDomain
ComputerNameDnsFullyQualified
ComputerNamePhysicalNetBIOS
ComputerNamePhysicalDnsHostname
ComputerNamePhysicalDnsDomain
ComputerNamePhysicalDnsFullyQualified
End Enum
Declare Function GetComputerNameEx Lib "kernel32" Alias "GetComputerNameExA" (_
ByVal NameType As COMPUTER_NAME_FORMAT, _
ByVal lpBuffer As String, _
ByRef lpnSize As Long) As Long
Sub test()
Dim buffer As String
Dim size As Long
size = 255
buffer = Space(size)
GetComputerNameEx ComputerNameDnsFullyQualified, buffer, size
Debug.Print Left$(buffer, size)
End Sub
太棒了,谢谢。我无法深入挖掘并得到我想要的结果而无需摆弄,但使用您的答案,我将一些东西放在一起。我会张贴它作为答案,因为它很长。 – seegoon
使用用户A.韦伯的答复,我得到它的工作使用;下面,拉动整个计算机名称和网络,然后只是削减。我相信有更漂亮的方法,但它的工作原理。
Option Explicit
Enum COMPUTER_NAME_FORMAT
ComputerNameNetBIOS
ComputerNameDnsHostname
ComputerNameDnsDomain
ComputerNameDnsFullyQualified
ComputerNamePhysicalNetBIOS
ComputerNamePhysicalDnsHostname
ComputerNamePhysicalDnsDomain
ComputerNamePhysicalDnsFullyQualified
End Enum
Declare Function GetComputerNameEx Lib "kernel32" Alias "GetComputerNameExA" (_
ByVal NameType As COMPUTER_NAME_FORMAT, _
ByVal lpBuffer As String, _
ByRef lpnSize As Long) As Long
Sub test()
Dim buffer As String
Dim size As Long
Dim network_and_computer As String
Dim network_name As String
size = 255
buffer = Space(size)
GetComputerNameEx ComputerNameDnsFullyQualified, buffer, size
network_and_computer = Left$(buffer, size)
MsgBox network_and_computer
network_name = Right(network_and_computer, Len(network_and_computer) - InStr(1, network_and_computer, ".", vbTextCompare))
MsgBox network_name
End Sub
解析出网络名称是不必要的。如果这就是你想要的,只需将'GetComputerNameEx'的'ComputerNameDnsFullyQualified'参数改为'ComputerNameDnsDomain'。 –
这些建议的答案似乎并没有成为与Excel的64个版本兼容...
这些可能无法编译...是公平的,也许他们前64位的是流行的写入。
你是什么意思,“连接到服务器?”在Excel中?连接了什么? – OldProgrammer
你能澄清一下你的意思吗?“我的互联网接入”。如何找到VBA之外的信息? –
如果我理解正确,那么您可以创建一个用户窗体并在控件上放置一个Web浏览器。导航到'http:// whatismyipaddress.com /'在那里你可以提取ISP名称。 –