无法通过列表为多列中的单元格着色我正在尝试格式化多个列,以使用特定列名称的列表来按单元格值更改颜色,但是我的代码仅格式化列表中的第一列。
如何获取列表中其余的列以进行格式化?
Names Default to Here( 1 );
Test_DT = New Table( "Test",
New Column( "No Color", set values( {2,2,2,2,2,2} ) ),
New Column( "1-1", set values( {0,1,0,0} ) ),
New Column( "2-1", set values( {0,0,0,1} ) ),
New Column( "3-1", set values( {0,0,0,0,4} ) )
);
Col_List = Test_DT << Get Column Names( string );
For( i = Nitems( Col_List ), i > 0, i--,
If( !Contains( Col_List[i], "-"),
Remove from( Col_List, i )
)
);
For( i = 1, i <= N Row( Test_DT ), i++,
If( Column( Col_List )[i] >= 1,
Column( Col_List ) << Color Cells( light orange, {i} )
)
);
回复:无法通过列表为多列中的单元格着色您还必须遍历col_list。
Names Default to Here( 1 );
Test_DT = New Table( "Test",
New Column( "No Color", set values( {2,2,2,2,2,2} ) ),
New Column( "1-1", set values( {0,1,0,0} ) ),
New Column( "2-1", set values( {0,0,0,1} ) ),
New Column( "3-1", set values( {0,0,0,0,4} ) )
);
Col_List = Test_DT << Get Column Names( string );
For( i = Nitems( Col_List ), i > 0, i--,
If( !Contains( Col_List[i], "-"),
Remove from( Col_List, i )
)
);
For( i = 1, i <= N Row( Test_DT ), i++,
for (k = 1, k <= nitems(col_list), k++,
If ( Column( Col_List[k] )[i] >= 1,
Column( Col_List[k] ) << Color Cells( light orange, {i} )
);
);
);回复:无法通过列表为多列中的单元格着色你做了我做过很多次的事情。 您正在尝试引用一个单元格值,但没有指出哪一行。 看看下面的代码,它正在工作。 另外,您正在比较我是否为gt 1,并且对于想要的结果,它应该为> =。
Names Default To Here( 1 );
Test_DT = New Table( "Test",
New Column( "No Color", set values( {2, 2, 2, 2, 2, 2} ) ),
New Column( "1-1", set values( {0, 1, 0, 0} ) ),
New Column( "2-1", set values( {0, 0, 0, 1} ) ),
New Column( "3-1", set values( {0, 0, 0, 0, 4} ) )
);
Col_List = Test_DT << Get Column Names( string );
For( i = N Items( Col_List ), i > 0, i--,
If( !Contains( Col_List[i], "-" ),
Remove From( Col_List, i )
)
);
For( ColNum = 1, ColNum <= N Items( Col_List ), ColNum++,
For( i = 1, i <= N Row( Test_DT ), i++,
If( (Column( Col_List[colNum] )[i]) >= 1,
As Column( Col_List[ColNum] ) << Color Cells( light orange, {i} )
);
)
);回复:无法通过列表为多列中的单元格着色忍不住稍微改善。 将所有行收集到一列的矩阵中,并一次设置所有颜色。 一次比一行更高效。 不得不使用作为列在里面在哪里获取行条款。
Names Default to Here( 1 );
Test_DT = New Table( "Test",
New Column( "No Color", set values( {2,2,2,2,2,2} ) ),
New Column( "1-1", set values( {0,1,0,0} ) ),
New Column( "2-1", set values( {0,0,0,1} ) ),
New Column( "3-1", set values( {0,0,0,0,4} ) )
);
Col_List = Test_DT << Get Column Names( string );
For( i = Nitems( Col_List ), i > 0, i--,
If( !Contains( Col_List[i], "-"),
Remove from( Col_List, i )
)
);
for (k = 1, k <= nitems(col_list), k++,
one_col = Col_List[k];
orange_rows = test_dt << get rows where(as column(test_dt, one_col) >= 1);
if (nrows(orange_rows) > 0,
Column(test_dt, one_col) << Color Cells( light orange, orange_rows );
);
);回复:无法通过列表为多列中的单元格着色那很棒。谢谢!