在 ListObject forloop 中打印和使用 Var
Printing and using Var within a ListObject forloop
我目前有此 C# 代码可以访问 table1。但是我遇到了 Var listRowsValue 和 var lr 的问题。我如何打印这些并从 ListRowsValue 中减去 1 而不是将 "System._ComObject" 视为输出?如何调整 ListObject 的大小以在计数结束时不检查另一行?
var listRowsValue = xlWorkBook.Worksheets["Sheet1"].ListObjects["table1"].ListRows;
for (int CurrentRow = 0; CurrentRow < listRowsValue.Count; CurrentRow++)
{
if (xlWorkBook.Worksheets["Sheet1"].ListObjects["table1"].Range[CurrentRow, 2].value == -1)
{
xlSheet.Cells[5, 5] = "YES!";
//lr.Range.Clear();
var lr = listRowsValue[CurrentRow];
Console.WriteLine("CURRENT ROW: " + lr);//Why does this not work?
//MoveEmUpOne();
//How do I resize the total listRowsValue count here so it doesn't check another row at the end?
//EXAMPLE: ListRowsValue = ListRowsValue - 1;
//CurrentRow = CurrentRow - 1;
}
else
{
xlSheet.Cells[5, 5] = "NO!";
}
}
旧的 VBA 代码,我正在转换自:
For CurrentRow = 1 To Tablesize
If Lo.ListColumns("Column2").DataBodyRange(CurrentRow) = -1 Then
Ros(CurrentRow).Range.Clear
MoveEmUpOne Lo, CurrentRow, Tablesize
Tablesize = Tablesize - 1 'table didn't really get smaller, but number of "real"rows decreased by 1
CurrentRow = CurrentRow - 1 ' check this row again -- stuff from below might need cleard
End If
VSTO 的用法与常规 C# 库有很大不同,因为它高度依赖于 COM。
lr
是一个 ListRow 对象。
使用lr.Range.Text
获取其中的文字。
Console.WriteLine("CURRENT ROW: " + lr.Range.Text);
参见 Range.Text
。
我目前有此 C# 代码可以访问 table1。但是我遇到了 Var listRowsValue 和 var lr 的问题。我如何打印这些并从 ListRowsValue 中减去 1 而不是将 "System._ComObject" 视为输出?如何调整 ListObject 的大小以在计数结束时不检查另一行?
var listRowsValue = xlWorkBook.Worksheets["Sheet1"].ListObjects["table1"].ListRows;
for (int CurrentRow = 0; CurrentRow < listRowsValue.Count; CurrentRow++)
{
if (xlWorkBook.Worksheets["Sheet1"].ListObjects["table1"].Range[CurrentRow, 2].value == -1)
{
xlSheet.Cells[5, 5] = "YES!";
//lr.Range.Clear();
var lr = listRowsValue[CurrentRow];
Console.WriteLine("CURRENT ROW: " + lr);//Why does this not work?
//MoveEmUpOne();
//How do I resize the total listRowsValue count here so it doesn't check another row at the end?
//EXAMPLE: ListRowsValue = ListRowsValue - 1;
//CurrentRow = CurrentRow - 1;
}
else
{
xlSheet.Cells[5, 5] = "NO!";
}
}
旧的 VBA 代码,我正在转换自:
For CurrentRow = 1 To Tablesize
If Lo.ListColumns("Column2").DataBodyRange(CurrentRow) = -1 Then
Ros(CurrentRow).Range.Clear
MoveEmUpOne Lo, CurrentRow, Tablesize
Tablesize = Tablesize - 1 'table didn't really get smaller, but number of "real"rows decreased by 1
CurrentRow = CurrentRow - 1 ' check this row again -- stuff from below might need cleard
End If
VSTO 的用法与常规 C# 库有很大不同,因为它高度依赖于 COM。
lr
是一个 ListRow 对象。
使用lr.Range.Text
获取其中的文字。
Console.WriteLine("CURRENT ROW: " + lr.Range.Text);
参见 Range.Text
。