目标:我正在尝试为Excel 2016 VSTO插件添加功能。该功能将从活动工作表中获取1列,并根据字符串长度迭代更改背景颜色。
问题:我无法从单元格中获取字符串长度。我无法弄清楚我目前使用var count = row.Item[1].Value2.Text.Length;
代码:以下是我的内容
public void CharacterLengthCheck(int length = 24, int Column = 3)
{
Worksheet sheet = Globals.ThisAddIn.Application.ActiveSheet;
var RowCount = sheet.UsedRange.Rows.Count;
Range column = sheet.Range[sheet.Cells[1, Column], sheet.Cells[RowCount, Column]];
foreach (Range row in column)
{
var count = row.Item[1].Value2.Text.Length;
if (count > length)
{
row.Item[1].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
}
else
{
row.Item[1].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Green);
}
}
}
答案 0 :(得分:0)
我认为你的问题在这里:
row.Item[1].Value2.Text.Length
长度函数为Len(x)
,因此请尝试Len(row.Item[1].Value2.Text)
答案 1 :(得分:0)
感谢@Jeeped提供有关使用条件格式的建议。然而,我原来问题的答案是。
更改
var count = row.Item[1].Value2.Text.Length;
到
string text = (row.Item[1].Value).ToString();
var count = text.length;
我认为这是因为价值是动态的,需要明确地转换为字符串