如何从单元格中获取字符数

时间:2017-04-04 14:18:34

标签: excel vsto excel-interop

目标:我正在尝试为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);
            }
        }
    }

2 个答案:

答案 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;

我认为这是因为价值是动态的,需要明确地转换为字符串