使用特定类型的对象

时间:2018-04-06 20:12:58

标签: python vba com attributeerror

我有一个VBA脚本,我在一个名为Visum的软件中运行。此脚本计算一些内容并将一些结果返回给软件。 我想要做的是"转换"这个脚本用于Python,但我对这部分代码有疑问:
VBA(有效,使用Visum库):

Dim PathList_0 As IPrTPathLinkList
Set PathList_0 = Visum.Lists.CreatePrTPathLinkList

Set DSeg = Visum.Net.DemandSegments.ItemByKey(Segmento_Demanda)
PathList_0.SetObjects newDemandSegOrPathSet:=DSeg, PathTypeSelection:=routeFilter_filterFromZoneFilter, ListFormat:=listFormat_databaseWithoutHeadLine, zone:=All
PathList_0.AddColumn ("OrigZoneNo")
aPath_0 = PathList_0.SaveToArray()

Python(不起作用......根据软件手册,没有必要导入任何' Visum'模块,因为我正在运行此脚本在软件中):

PathList_0 = Visum.ListsCreatePrTPathLinkList #ERROR

DSeg = Visum.NetDemandSegments.ItemByKey(Segmento_Demanda)
PathList_0.SetObjects("All", DSeg, "routeFilter_filterFromZoneFilter", False, "listFormat_databaseWithoutHeadLine")
PathList_0.AddColumn("OrigZoneNo")
aPath_0 = PathList_0.SaveToArray()

当我运行VBA脚本时,它可以工作。但是当我运行Python脚本时,它返回一个AttributeError:

Script Error window

我已经阅读了一些关于AttributeError的类似问题,但我找不到针对这种特定情况的有用信息。我也读过dynamic.py和pyscript.py,但由于我不是一个经验丰富的程序员,我无法找到问题。

我的Python版本与Visum软件兼容(我已经检查过它)。

我问这个问题是因为我认为这可能与我在转换"时所犯的一些错误有关。到Python。任何人都可以帮我解决这个错误吗?

1 个答案:

答案 0 :(得分:1)

这只是一个错字:

PathList_0 = Visum.ListsCreatePrTPathLinkList

应该是

PathList_0 = Visum.Lists.CreatePrTPathLinkList

注意列表后的点