Excel排序需要以以下格式指定值:
Columns("A:C").Sort key1:=Range("C2"), order1:=xlAscending, header:=xlYes
如何通过tcom发送?我试过以下不成功的
(Users) 14 % set sort [$worksheet Sort]
::tcom::handle0x0201DD00
(Users) 15 % $sort Header xlYes
0x80020005 {Type mismatch.}
(Users) 16 % $sort Header 1
(Users) 18 % set sfs [$sort SortFields]
::tcom::handle0x0201DD60
(Users) 21 % $sfs Add Key:=[$worksheet Range "B2:B7"]
0x80020005 {Type mismatch.}
(Users) 22 % $sfs Add [$worksheet Range "B2:B7"]
::tcom::handle0x0201DDA0
(Users) 24 % $sort Apply
0x800a03ec {Unknown error}
(Users) 25 % $sfs Add [$application Range "B2:B7"]
::tcom::handle0x0201DDC0
(Users) 26 % $sort Apply
0x800a03ec {Unknown error}
答案 0 :(得分:2)
您需要替换Excel常量的整数值而不是其名称。
您可以在https://msdn.microsoft.com/en-us/library/office/ff838815.aspx仔细阅读常量和枚举列表并执行set xlYes [expr 1]
以确保它是一个整数,然后在脚本中使用变量$ xlYes。
如果您的计算机上有Excel typelib文件,则可以tcom::import
创建包含这些常量的tcl数组。
更多信息: 如何使用注册表找到tcom的com对象枚举:http://wiki.tcl.tk/19932 如何发现COM导出应用程序的API:http://wiki.tcl.tk/4472