Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3085|回复: 11

[已解决]谢谢zjdh 老师。能否提取本机的IP地址

[复制链接]
发表于 2011-11-21 15:50 | 显示全部楼层 |阅读模式
本帖最后由 lhj323323 于 2011-11-21 20:39 编辑

老师
需求如题,能否将本机的IP地址提取出来导入到工作表中

特别适用于局域网中的电脑。
最佳答案
2011-11-21 20:36
  1. Option Explicit
  2. Sub GetIP()
  3.     Dim OpSysSet As Object, OpSys As Object, IP, GIP$, ComputerName
  4.     Set OpSysSet = GetObject("winmgmts:{impersonationLevel=impersonate}//" & ComputerName).ExecQuery("SELECT index, IPAddress FROM Win32_NetworkAdapterConfiguration")
  5.     For Each OpSys In OpSysSet
  6.         If TypeName(OpSys.IPAddress) <> "Null" Then
  7.             For Each IP In OpSys.IPAddress
  8.                 GIP = IP
  9.             Next
  10.         End If
  11.     Next
  12.     MsgBox "本机IP: " & GIP
  13. End Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-11-21 16:09 | 显示全部楼层
回复

使用道具 举报

发表于 2011-11-21 16:20 | 显示全部楼层
  1. Sub GetIP()
  2.     Set OpSysSet = GetObject("winmgmts:{impersonationLevel=impersonate}//" & ComputerName).ExecQuery("SELECT index, IPAddress FROM Win32_NetworkAdapterConfiguration")
  3.     For Each OpSys In OpSysSet
  4.         If TypeName(OpSys.IPAddress) <> "Null" Then
  5.             For Each IP In OpSys.IPAddress
  6.                 GIP = IP
  7.             Next
  8.         End If
  9.     Next
  10.     MsgBox "本机IP: " & GIP
  11. End Sub
复制代码
接下来的事你应该会了。
回复

使用道具 举报

发表于 2011-11-21 18:07 | 显示全部楼层
学习了,运行无误
回复

使用道具 举报

 楼主| 发表于 2011-11-21 20:11 | 显示全部楼层
本帖最后由 lhj323323 于 2011-11-21 20:15 编辑
zjdh 发表于 2011-11-21 16:20
接下来的事你应该会了。


老师:
如果不取消Option Explicit的话
您的语句中的变量该分别设为什么类型的呢?

或者换个问法
如何在不取消Option Explicit的情况下,针对您写的语句之中,添加个什么语句,就可以不再对您写的变量设置变量类型?

回复

使用道具 举报

发表于 2011-11-21 20:36 | 显示全部楼层    本楼为最佳答案   
  1. Option Explicit
  2. Sub GetIP()
  3.     Dim OpSysSet As Object, OpSys As Object, IP, GIP$, ComputerName
  4.     Set OpSysSet = GetObject("winmgmts:{impersonationLevel=impersonate}//" & ComputerName).ExecQuery("SELECT index, IPAddress FROM Win32_NetworkAdapterConfiguration")
  5.     For Each OpSys In OpSysSet
  6.         If TypeName(OpSys.IPAddress) <> "Null" Then
  7.             For Each IP In OpSys.IPAddress
  8.                 GIP = IP
  9.             Next
  10.         End If
  11.     Next
  12.     MsgBox "本机IP: " & GIP
  13. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2011-11-21 20:41 | 显示全部楼层
zjdh 发表于 2011-11-21 20:36

谢谢老师
测试成功了。

还有个不情之请,能否在有空的时候,看看下贴:
http://www.excelpx.com/forum.php?mod=viewthread&tid=208841&page=1#pid2947109
我不知该如何设置变量类型

RetVal = Shell("C:\Windows\System32\Dxdiag.exe", vbNormalFocus)

设成如下类型对不对?
Dim retval As Boolean

或是
Dim retval As long


回复

使用道具 举报

发表于 2011-11-21 21:02 | 显示全部楼层
这个不懂,你还是求教“ 那么的帅 ”老师吧。
回复

使用道具 举报

 楼主| 发表于 2011-11-21 21:04 | 显示全部楼层
zjdh 发表于 2011-11-21 21:02
这个不懂,你还是求教“ 那么的帅 ”老师吧。

仍谢谢您了!                                       
回复

使用道具 举报

发表于 2011-11-21 21:05 | 显示全部楼层
越整越宽了哈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-3-29 16:39 , Processed in 0.922010 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表