使用(Tcl) TCOM 如何select 完成相邻单元格的范围?
Using (Tcl) TCOM How to select complete range of adjacent cells?
需要 select 整个范围(固定从一个单元格开始,但可以向左或向右延伸到任何地方)
以下代码运行良好,select从单元格 B2(第 2 列 B)开始的 table 的最后一行和最后一列
#already opened handle to excel app
set appHandle ::tcom::handle0x04C65180
[[$appHandle Range B2] Select
set xlToRight -4161
[[$appHandle Selection] End $xlToRight] Select
set xlDown -4121
[[$appHandle Selection] End $xlDown ] Select
但它不是 selecting 单元格。有什么方法可以 select 这个范围吗?
它看起来像一个粗糙的 hack
#Following proc returns alphabet character for column number
proc colName {col} {
return [format %c [expr [scan A %c] + ($col%26) - 1]]
}
set endCol [colName [[[$appHandle Range B2] End $xlToRight] Column]]
set endRow [[[$appHandle Range B2] End $xlDown] Row]
[$appHandle Range B2 $endCol$endRow] Select
需要 select 整个范围(固定从一个单元格开始,但可以向左或向右延伸到任何地方)
以下代码运行良好,select从单元格 B2(第 2 列 B)开始的 table 的最后一行和最后一列
#already opened handle to excel app
set appHandle ::tcom::handle0x04C65180
[[$appHandle Range B2] Select
set xlToRight -4161
[[$appHandle Selection] End $xlToRight] Select
set xlDown -4121
[[$appHandle Selection] End $xlDown ] Select
但它不是 selecting 单元格。有什么方法可以 select 这个范围吗?
它看起来像一个粗糙的 hack
#Following proc returns alphabet character for column number
proc colName {col} {
return [format %c [expr [scan A %c] + ($col%26) - 1]]
}
set endCol [colName [[[$appHandle Range B2] End $xlToRight] Column]]
set endRow [[[$appHandle Range B2] End $xlDown] Row]
[$appHandle Range B2 $endCol$endRow] Select