我知道我有问题
IPROUTER = (Left(IP, 11)) & ((Right(IP, 3)) + 5)
我是vba的新手,我应该怎么写这一行而不是标题错误?
'''VBA
Dim ID As String
Dim IP As String
Dim IPROUTER As String
ID = Mid(olItem.Subject, 20, 9)
IP = Right(olItem.Body, 14)
IPROUTER = (Left(IP, 11)) & ((Right(IP, 3)) + 5)
With objFile
.WriteLine "START " & Chr(34) & ID & Chr(34) & " ping" & IP & " -t"
'''
你得到一个Type mismatch
错误,因为你的代码,你试图将Integer
添加到String
(因为你的.
有一个String
)。
假设您的IP地址是C类(如192.168.1.x
),您可以像这样更正您的代码:
IPROUTER = (Left(IP, 10)) & (Mid(IP, 11, 3) + 5)
这将适用于最后一个八位字节的大小,但您可能必须根据地址固定部分的长度更改某些内容。
希望这可以帮助。
谢谢回复。它没有帮助,但我以不同的方式想出来。我只是将字符串转换为int。我的例子的代码如下:
Dim ID As String
Dim IP As String
Dim IPROUTER As String
Dim ok As String
Dim okI As Integer
ID = Mid(olItem.Subject, 20, 9)
IP = Right(olItem.Body, 14)
IPROUTER = (Left(IP, 12))
ok = Mid(IP, 13, 3)
okI = CInt(ok)
With objFile
.WriteLine "START " & Chr(34) & ID & Chr(34) & " ping " & IP & " -t"
.WriteLine "START " & Chr(34) & ID & Chr(34) & " ping " & IPROUTER & okI + 5 & " -t"