C# / Exceldna Add-IN UDF Call на другой лист ...?C#

Место общения программистов C#
Ответить
Anonymous
 C# / Exceldna Add-IN UDF Call на другой лист ...?

Сообщение Anonymous »

Возвращение к работе над надстройкой Excel UDF, написанного в C# / Exceldna. И я пытаюсь очистить код для UDF под названием «C_FORMULA». Он рассматривает формулу в Cell Ref, тесты, чтобы увидеть, есть ли какие -либо другие ссылки на ячейки между любыми математическими операторами, и просматривает численные значения этих ссылок на ячейки. Фрагмент из моего файла CS, который, я думаю, мне нужно работать над ... < /p>

Код: Выделить всё

    //if there is a cell reference to another worksheet
if (strI == "!")
{
int sheetEnd = i - 1;
strSheet = strFormText.Substring(p1, sheetEnd - p1 + 1);
if (strSheet.Contains(" "))
strSheet = "'" + strSheet + "'";
strSheet += "!";
p1 = i + 1;
i++;
goto STARTLOOP;
}
...
...
...
// check if string is an actual cell reference
try

{
strCell = strSheet + strCell;
ExcelReference refCell = (ExcelReference)Excel(xlfIndirect, strCell, true);

object val = refCell.GetValue();
string format = (string)Excel(xlfGetCell, 7, refCell);  // Get cell number format
strCell = (string)Excel(xlfText, val, format);  // Format value as displayed in Excel
}
// ...if strCell is a number (OR) if cell is empty
catch (InvalidCastException)
{
if (objCell is ExcelEmpty) strCell = "0";
else if (ToolsArgs.ChkStringDouble(strCell)) { }
else if (strList.Contains(strH)) strCell = "";
}
catch { strFormula = "CatchAll 3"; }
< /code>
Для примера ...
Cell D68 на активном рабочем листе ("лист1") содержит формулу < /p>
=Sheet2!D27+Sheet2!D28+Sheet2!D29+Sheet2!D30
Если ячейка вызывает "= c_formula (d68)" во время отладки в Visual Studio, в первом цикле, если я сломаю и парят над strcell , VS говорит, что текущее значение - "лист2! D27". Что правильно!
Но в настоящее время код не может обрабатывать и искать это значение на другом рабочем листе и либо сбои, либо бросает ошибку.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... -worksheet
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»