You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何拼接IP地址?解决VBA运行时错误13(类型不匹配)

解决VBA运行时错误13(类型不匹配)的方案

你遇到的运行时错误13,本质是字符串与数值的类型不匹配——代码里Right(IP, 3)返回的是字符串类型,VBA不允许直接对字符串和数字执行加法运算,必须先做类型转换。

修正后的核心语句:

IPROUTER = Left(IP, 11) & CStr(Val(Right(IP, 3)) + 5)

完整修改后的代码片段:

Dim ID As String
Dim IP As String
Dim IPROUTER As String
ID = Mid(olItem.Subject, 20, 9)
IP = Right(olItem.Body, 14)
' 先将IP末尾3位转为数值计算,再转回字符串拼接
IPROUTER = Left(IP, 11) & CStr(Val(Right(IP, 3)) + 5)
With objFile
    .WriteLine "START " & Chr(34) & ID & Chr(34) & " ping" & IP & " -t"
End With

关键修改说明:

  • Val(Right(IP, 3)):把从IP中提取的最后3位字符串转换成数值类型,这样才能和数字5进行加法运算。Val()函数会自动忽略字符串中的非数字字符(如果有的话),适合处理IP这类纯数字分段的场景。
  • CStr(...):将加法运算后的数值结果转回字符串类型,确保能和Left(IP, 11)的字符串顺利拼接,避免类型冲突。

额外提醒(可选):

如果需要保证IP的合法性(比如避免计算后末尾段超过255),可以额外添加判断逻辑,比如:

Dim lastOctet As Integer
lastOctet = Val(Right(IP, 3)) + 5
If lastOctet > 255 Then
    ' 这里可以添加超出范围的处理逻辑,比如重置为合理值或抛出提示
    lastOctet = lastOctet Mod 256
End If
IPROUTER = Left(IP, 11) & CStr(lastOctet)

内容的提问来源于stack exchange,提问作者cymek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:19:07