我在Excel VBA中使用objSNMP.get方法没有任何问题。
我想使用objSNMP.set方法,但不幸的是,它没有那么容易。根据该网站的说法,它应该类似于get,不同的是还有一个参数:要发送的值。
如果我尝试官方方式:
objSNMP.Set ("43.18.1.1.2", OIDValue)
图片1我收到消息";编译错误:语法错误;。我找到了另一个有条件工作的解决方案。即如下(可以在图片中看到注释(:
randomVarName = objSNMP.Set("OID", Value)
例如:
temp = objSNMP.Set(".1.3.6.1.4.1.9.9.68.1.2.2.1.2." & PortNum, 21)
在这种情况下,代码运行时不会出现错误这很有趣,因为我在任何地方都没有找到任何关于这方面的官方信息。在互联网深处的某个地方,我不久前才找到这个可能的解决方案。
另一方面,如果我不直接输入值,而是在那里写一个变量的名称(例如VLANNum(,
temp = objSNMP.Set(".1.3.6.1.4.1.9.9.68.1.2.2.1.2." & PortNum, VLANNum)
我收到一条错误消息。图片2变量的类型是未声明的,字符串还是整数都无关紧要。我还在Excel中尝试了几种不同的单元格类型,但都没有改变。
错误消息为:
运行时错误'-2147467259(80004005(':
请求的SNMP操作试图修改变量,但出现语法或值错误。
基于上述情况,我无法在";objSNMP.Set";方法,使其可以发送值。我只能在创建4094个不同的";objSNMP.Set";行,并从中选择必要的内容。效率不是很高。
我有解决方案。随变量传递的值以以下形式工作:
objSNMP.Set ".1.3.6.1.2.1.2.2.1.7.9", CInt(x)
其中x是变量。