Tag: excel dna

如何使用Microsoft.Office.Interop在Visual Studio中引用Excel NamedRange

我正在使用ExcelDNA从VBA转换到VB.NET的Excel加载项。 在我的代码中,我试图通过它的名字来引用一个NamedRange(就像我可以在VBA中)来设置该名称的'ReferTo'属性。 但是,我得到一个错误,它不能转换我提供给一个整数的名称。 错误:从string“MyNamedRangeName”到types“整数”的转换无效。 在下面的代码中,您可以看到错误发生的位置以及原因。 Imports Microsoft.Office.Interop Imports ExcelDna.Integration Public Class Class1 Sub SetReferToProperty() Dim ap As Excel.Application = ExcelDnaUtil.Application Dim wb as Excel.Workbook = ap.ActiveWorkbook 'This is where the error occurs. Apparently, I can't (?) refer to 'the NamedRange by it's name. I need to use it's index. wb.Names("MyNamedRangeName").RefersTo = 0 'If I use […]

VB.NET中的Excel DNA错误“Xcopy退出代码3”

我得到一个错误,但不能find什么是造成它的任何信息。 Error 6 The command "xcopy C:\Dev\MyProject\packages\ExcelDna.AddIn.0.33.9\tools\ExcelDna.xll" "C:\Dev\PlatinumXL3\PlatinumXL3\bin\x86\Debug\PlatinumXL3-AddIn.xll*" /C /Y exited with code 3. PlatinumXL3

如何使用Excel-DNA来遍历行?

我正在寻找excel-dna迭代工作表中的单元格的一个简单的示例。 我会想象我会有这样的事情: public static class Test { [ExcelCommand(MenuName = "Range Tools", MenuText = "Iterator")] public static void IterateOverRows(string worksheetName, string startAddress, string endAddress) { … } } 我会从Excel中使用一个button单击将调用此加载项将运行: Application.Run("IterateOverRows", "Sheet1", "A1", "C3") 任何关于如何在Excel-DNA中做到这一点的指针?

Excel Interop工作表SelectionChange不附加在打开的工作簿上

在Excel 2010中,使用excel dna和excel interop我附加到每个工作表的select更改。 我正在使用app.WorkbookActivate并试图枚举打开的工作簿。 它通过工作簿激活适用于新的书籍/工作表。 但是 – 对于打开的工作簿它不附加。 没有错误,它只是不起作用 如果您打开一个新的工作簿,然后切换回来,它将附加到该原始工作簿 任何人知道为什么 这是代码。 using ExcelDna.Integration; using XL = Microsoft.Office.Interop.Excel; …. /// in an init method //add event listeners to open work books and on new work books XL.Application xlapp = (XL.Application)ExcelDnaUtil.Application; xlapp.WorkbookActivate += Xlapp_WorkbookActivate; ListenOnOpenWorkBooks(); private static void ListenOnOpenWorkBooks() { XL.Application xlapp = (XL.Application)ExcelDnaUtil.Application; foreach […]

如何不挂Excel?

我有这个问题,我的易失性,macros型UDF设置调用单元格旁边的几个单元格的值完美工作,除非在工作表中使用两次(或更多):Excel状态栏开始闪烁“正在计算…” 。 我不是一个真正的挂起,而是一个沉重的重新计算:在示例函数的计数器绘制没有实际挂起的琐碎。 此外,我不确定使用易失性UDF,因为我需要自动重新计算,但只能在input更改,而不是不断的轮询。 我做了三个function的示例模块: VolatileNyanCat – 类似于我的UDF:一个SetValue调用。 如果使用两次, Excel挂起 。 NonVolatileOneNyanCat – 如上,但不易变。 不挂,但我需要自动重新计算。 HangNyanCat – 它在两个不同的范围内两次调用SetValue 。 Excel挂起。 我认为这与ExcelAsyncUtil.QueueAsMacro如何工作和线程安全有关,但我在这里感到困惑。 Imports ExcelDna.Integration Imports ExcelDna.Integration.XlCall Public Module Example <ExcelFunction(IsMacroType:=True, IsVolatile:=True)> Public Function VolatileNyanCat() As String Dim caller = CType(XlCall.Excel(XlCall.xlfCaller), ExcelReference) Dim NyanCat(,) As String = {{"Nyan", "Cat"}} Dim nc As New ExcelReference(caller.RowFirst + 1, caller.RowLast […]

VSTO和.XLL之间的通信

在Visual Studio中,我有一个解决scheme。 在这个解决scheme中,我有2个项目。 一个是VSTO,所以我们可以为Excel创build一个插件。 另一个项目是用来创build一个.xll文件,以便我们可以有自定义函数。 VSTO帮助我们在excel上创build一个login系统,以便他们可以做某些事情。 但是,因为我们只希望我们的用户能够使用我们的自定义函数,他们必须login。我认为这两个项目不能直接通信,所以.xll插件不会知道用户是否login。 这两个项目有没有交stream? 也许通过一个像静态variables类的中间人? 编辑: 更多信息: 这两个项目都是用C#代码编写的。 我可以通过使用ExcelDNA为.xll文件做到这一点。 因此,如果有什么办法可以创build一个C#类,它可以在两个项目之间协调或共享数据,这将非常棒。 由于login数据不是我们想分享的唯一东西。 我希望在类中将有一个静态布尔variables保持用户是否login。所以VSTO可以设置布尔值和.xll可以得到它。

ExcelDNA – 创build一个表:xlcAddListItem或其他方式

我想弄清楚如何使用ExcelDNA从ExcelReference范围创build表。 使用Excel,您通常会执行以下操作: range2.Worksheet.ListObjects.Add(Microsoft.Office.Interop.Excel.XlListObjectSourceType.xlSrcRange, range2, System.Type.Missing, Microsoft.Office.Interop.Excel.XlYesNoGuess.xlYes, System.Type.Missing).Name = "uniquesomething"; 我一直在尝试使用ExcelDNA来xlcAddListItem与ExcelDNA类似的东西,但是如果没有任何适当的文档,这很粗糙。 有没有人有成功? 基本上采取ExcelDNA数组调整器的例子,然后把网格输出,把它变成一个表。 到目前为止我尝试过 ExcelDna.Integration.SourceItem mySourceItemHopefully = (ExcelDna.Integration.SourceItem)XlCall.Excel(XlCall.xlcAddListItem, 1, myExcelReference); mySourceItemHopefully.Name = "uniquesomething"; 但是我得到一个访问冲突错误。

加载ExcelDna .xll插件的自定义function区

我有一个Visual Studio项目来创build一个.xll插件。 在那个项目中我有一个Main.cs文件和一个Functions.cs文件。 Functions.cs文件存储将在Excel中使用的UDF。 我有另一个项目,为Excel创build一个function区。 在那个项目中是一个Ribbon.xml和Ribbon.cs文件。 我将这两个文件移到了.xll项目中。 但我不知道该怎么做,以便当用户将.xll文件安装到他们的Excel中时,自定义function区选项卡也会显示。 顺便说一句 ,我是一个初学者,我正在做这个实习。 所以要么我真的找不到任何的讨论,要么我不明白人们在讨论什么。 所以我很抱歉,对于你来说可能看起来很简单的问题。

我怎样才能得到某些细胞的背景值?

我试图创build一个ExcelReference,然后调用GetValue(),但这会导致XlCallException(exception中没有提供的细节)。 var val = new ExcelReference(1, 1).GetValue(); 我究竟做错了什么?

获取文档加载后调用的事件

如何创build一个方法,在文档加载后立即调用(使用Excel-DNA)? Excel-DNA中是否支持这种function?