我有一个脚本用于将费用条目从Excel导出到QIF格式。 为了创建输出文件,我在Excel中有一个表格列出了费用(帐户)类型:
PaymentType Category Acct Type ----------- ----------------- --------- A American Express CCard B Bob Cash C Capital One CCard E Expense Income Bank N PNC Bank P PayPal CCard S Sears CCard U USAir MC CCard
表格的内容标记为: PaymentSourceTable
我有这个脚本来读取表的内容,然后为每个创建一个输出文件:
tell application "Microsoft Excel"
#
# Get the list of payment sources from the spreadsheet and
# create a QIF file for each
#
# Also create the list of filenames corresponding to the sources.
# That list will be used when appending expense records to the files.
#
set PaymentSources to {}
tell worksheet ListsWorksheet
set PaymentSources to value of range PaymentSourceTable
end tell
在我的其余部分中,一切都运行良好,但有时 PaymentSources 包含两次实际的表值 - 好像我已经两次附加了我的表值。条目再次显示为A-U,然后是A-U。
只有在Excel中从脚本菜单运行脚本时才会发生这种情况,有时只会发生。如果我从Applescript编辑器运行脚本,或者至少在我的许多测试中还没有发生,那么它永远不会发生。这本身看起来很奇怪,我一遍又一遍地尝试它,以为我只是想象它。 : - )
我感到困惑 有没有其他人看过这个或者可以建议一种调试方法?
顺便说一下,我正在使用Excel for Mac 2011.
更新 事实证明,PaymentSources不是问题所在。以下代码是真正的罪魁祸首:
repeat with source in PaymentSources
set _ptype to item 1 of source
if _ptype is not equal to "" then
set _type to "!Type:" & item 3 of source
set _furl to my constructFileName(source)
my createFile(_type, _furl)
set end of FileNames to {item 1 of source, _furl, 0}
end if
end repeat
以及我将 FileNames 定义为属性的事实:
property FileNames : {}
我完全错过了运行之间属性持续存在的事实。经验教训。