ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3129|回复: 11

[求助] 怎样用VBA 修改本地连接里的IP地址

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-3-21 22:01 | 显示全部楼层 |阅读模式
我用的是win10系统,怎么修改以太网的IP地址和子网掩码,如果是win7系统又怎么修改本地连接的IP地址和子网掩码呢?

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-3-22 12:46 | 显示全部楼层
我顶我顶我顶

TA的精华主题

TA的得分主题

发表于 2019-3-22 13:17 | 显示全部楼层

试试看,需要管理员权限

IP.zip

671 Bytes, 下载次数: 61

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-3-22 14:14 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-3-24 12:21 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
美好未来686 发表于 2019-3-22 14:14
不行啊!我查过CMD改IP地址,不适合win10


Private Sub GetIPConfig() '获取IP地址/子掩码/网关
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    Set IPConfigSet = objWMIService.ExecQuery _
        ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
    Cells(1, 1) = "IP address:"
    Cells(2, 1) = "Subnet:"
    Cells(3, 1) = "Gateway:"
    For Each ipconfig In IPConfigSet
        If Not IsNull(ipconfig.IPAddress) Then
            If Not ipconfig.IPAddress(0) = "0.0.0.0" Then Cells(1, 2) = ipconfig.IPAddress(0)
        End If
        If Not IsNull(ipconfig.IPSubnet) Then
            If Not ipconfig.IPSubnet(0) = "" Then Cells(2, 2) = ipconfig.IPSubnet(0)
        End If
        If Not IsNull(ipconfig.DefaultIPGateway) Then
            If Not ipconfig.DefaultIPGateway(0) = "0.0.0.0" Then Cells(3, 2) = ipconfig.DefaultIPGateway(0)
        End If
    Next
End Sub
Sub UpdateIPConfig() '设置IP地址/子掩码/网关
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    Set colNetAdapters = objWMIService.ExecQuery _
        ("Select * from Win32_NetworkAdapterConfiguration " _
            & "where IPEnabled=TRUE")
    If Cells(1, 2) <> "" And Cells(2, 2) <> "" And Cells(3, 2) <> "" Then
       strIPAddress = Array(Cells(1, 2).Value)
       strSubnetMask = Array(Cells(2, 2).Value)
       strGateway = Array(Cells(3, 2).Value)
       strGatewaymetric = Array(1)
   
       For Each objNetAdapter In colNetAdapters
           errEnable = objNetAdapter.EnableStatic( _
               strIPAddress, strSubnetMask)
           errGateways = objNetAdapter.SetGateways( _
               strGateway, strGatewaymetric)
       Next
    End If
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-3-24 17:57 | 显示全部楼层
lss001 发表于 2019-3-24 12:21
Private Sub GetIPConfig() '获取IP地址/子掩码/网关
    Set objWMIService = GetObject("winmgmts:\ ...

我用的是WIN10系统,能读取IP地址那些,但你这个设置IP地址就完全没有效果了!我估计是不是这又win7才能用哦!我测试了几次都没有改变IP地址那些,虽然运行正常的!

TA的精华主题

TA的得分主题

发表于 2019-3-24 18:29 来自手机 | 显示全部楼层
没效果就对了,以上代码就是不改变!
如果要改变应首先运行第一段代码
然后在工作表中手动设置需要改变的值
最后运行第二段代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-3-24 18:48 | 显示全部楼层
lss001 发表于 2019-3-24 18:29
没效果就对了,以上代码就是不改变!
如果要改变应首先运行第一段代码
然后在工作表中手动设置需要改变的 ...

是这样的啊!先读取了IP地址和子网掩码,然后我加上了网关,就是cells(3,2)的位置,然后运行是正常的,可是一看以太网IP地址都没有改变!

TA的精华主题

TA的得分主题

发表于 2019-3-24 19:18 来自手机 | 显示全部楼层
本帖最后由 lss001 于 2019-3-24 19:21 编辑

设置完成后,一般需要重新启动电脑才能生效!
如果要即时生效可参考今天另一个帖子回复中提供的API函数!

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-3-24 20:17 | 显示全部楼层
lss001 发表于 2019-3-24 19:18
设置完成后,一般需要重新启动电脑才能生效!
如果要即时生效可参考今天另一个帖子回复中提供的API函数!

哦!我在研究研究,这方面很弱,谢谢
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-19 11:30 , Processed in 0.035602 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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