我正在用C#(Visual Studio 2015)编写应用程序,我需要更新.xlsm文件。
此文件包含许多公式,超过1200个名称和vba代码。
我正在使用Interop库,并且能够更新一些单元格并获得相对更新的公式,但是我对Excel中定义的名称存在一些问题。 该程序可以识别“名称”集合中的名称,但不允许我访问某些名称。
当我尝试使用其名称访问单元格的值时,它将产生异常。 我不明白为什么我可以访问某些名称而另一些则不能。
此外,在excel中,我可以在组合中看到Name(名称),但是当我选择它时,光标不会位于单元格上方。
在我的程序中,我可以避免使用引用而不是名称来访问单元格的问题,但是excel中的vba使用名称,并且如果我从应用程序中打开文件,将无法正常工作。
我正在使用以下代码:
excelApplication = new Microsoft.Office.Interop.Excel.Application();
excelApplication.ScreenUpdating = true;
excelApplication.Visible = true;
excelApplication.DisplayAlerts = false;
excelWorkbook = excelApplication.Workbooks.Open(txtFicheroEntrada.Text);
wsDatos = excelWorkbook.Worksheets[1];
wsDatos.Select();
foreach(Microsoft.Office.Interop.Excel.Name v in excelWorkbook.Names)
{
string NombreVar = v.Name;
//here i found the name BobinadoAT correctly. It exists
if (NombreVar == "BobinadoAT" ){ Console.WriteLine(NombreVar); }
}
if (wsDatos.Range["BobinadoAT"] != null) //but here this produces an exception
{
string valorcelda = wsDatos.Range["BobinadoAT"].Value.ToString();
}
?有人使用许多excel名称吗? ¿我输入的名称不正确吗?