Tag: excel addins

vb.net Excel:获取图表分类名称的问题

出于某种原因,我需要我的图表的类别名称。 这是我到目前为止: xlWorkbook = xlApp.ActiveWorkbook Dim wsnat As Excel.Chart = TryCast(xlWorkbook.ActiveChart, Excel.Chart) If Not wsnat Is Nothing Then Dim axxxis As Excel.Axis = DirectCast(wsnat.Axes(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary), Excel.Axis) Dim areyoukiddingme As Object = axxxis.CategoryNames Dim arr As Array = DirectCast(areyoukiddingme, Array) For q As Integer = 0 To arr.GetUpperBound(0) Debug.Print(arr(q).ToString) ' HERE, the array 'arr' has two […]

我可以为我的加载项创buildExcel公式以将值input到要使用的加载项中?

我想从其他服务器获取时间序列数据并将其插入到电子表格中,并且能够将数据从电子表格上传到服务器。 目前,我有一个VBA解决scheme,它可以在单元格上或下载所find的值。 这是严重的错误,validation代码的数量正在增长和增长。 我想在一个插件上创build一个公式,它使用符号单元格和date/时间单元格,并显示来自时间序列的数据点,有点像这样用B2中的符号和col中的date/时间A: =getDataPoint(B2, A7) =getDataPoint(B2, A8) =getDataPoint(B2, A9) =getDataPoint(B2, A10) 然后,我会用每个单元格中的公式填充一个列范围,以获得完整的时间序列。 这个想法是减less所需validation的数量。 理想情况下,当电子表格打开或点击button时,这将填充单元格。 我假设可能的话还有一个快速的处理时间,我用什么来实现呢? 假设我可以做到这一点,一个插件可以添加另一行到范围的底部,并在那里插入公式,例如星期一,我有 =getDataPoint(B2, A7) =getDataPoint(B2, A8) =getDataPoint(B2, A9) =getDataPoint(B2, A10) 然后在星期二,其他人已经更新了服务器上的星期二数据的时间序列,所以我检索它,看到额外的值,并希望像这样自动扩展范围(其中date/时间在列A中): =getDataPoint(B2, A7) =getDataPoint(B2, A8) =getDataPoint(B2, A9) =getDataPoint(B2, A10) =getDataPoint(B2, A11) 我对VBA的经验告诉我,Excel不会这样,但是我认为我不太了解Excel加载项模式。

Excel加载项来显示所有的控件

我正在做一个加载项,将显示Excel文档中的每个控件的消息框。 但是,当我用一些Excel文档(有许多button/checkbox控件)打开它时,通过将它添加为COM加载项,没有任何反应,当我再次打开COM加载项时,我看到我的add在没有选中:( 可能是什么问题? 这是代码: private void ThisAddIn_Startup(object sender, System.EventArgs e) { Tools.Worksheet vstoWork = Globals.Factory.GetVstoObject(this.Application.ActiveWorkbook.Worksheets[0]); foreach (Control c in vstoWork.Controls) { MessageBox.Show(c.Name); } } 我的最终目标是确定所有button的控件并单击它们,但这是现在。 谢谢。

Excel Addin启动事件。 获取打开工作簿path

我需要使用Interop拦截Excel Addin的StartUp事件,并根据commandLine参数修改excel的打开。 我唯一缺less的是excel打开的文件的path。 我无法findcommandLine参数之间的path,也不能使用ActiveWorkbook.Path属性,因为我已经尝试过,并且在启动方法的执行过程中没有工作簿是活动的(因此我只得到一个exception)。 我如何获得这些信息? (要清楚,我期待find一个类似于以下内容的GetCommandLineArgs内容: [0] "C:\Program Files\etcet\EXCEL.EXE" [1] "C:\Users\Myself\Documents\ExcelDocINeeToOpen.xlsx" [2] "-Embedding" 但我只看到应用程序的path和另一个parm,而不是打开文件的path。 谢谢

带有用户权限的Office加载项

我正在开发使用Visual Studio 2015和C#的Office Excel加载项。 此加载项仅供pipe理员用户使用,并且工作正常。 我最近改变了这种行为,一个普通用户(没有pipe理员权限)现在可以安装该加载项。 使用InstallShield限制版我更改了属性: ALLUSERS从'1'到'' 要求pipe理权限从“是”到“否” InstallDirectory从“ProgramFilesFolder”到“AppDataFolder” 在Excel启动时,用户现在有一个要求安装加载项的对话框。 用户收到的对话框如下所示: 未知发布者 为什么外接程序尚未安装? 尽pipe加载项应该由我的EXE文件安装,但是在这个对话框中,加载项没有被签名,但是EXE被签名了。 我应该签署VSTO文件吗? 我用signTool尝试,不能这样做。 这甚至可能吗?

Excel API错误 – System.AccessViolationException:试图读取或写入受保护的内存

我在2个不同的文件中使用以下语法中的Excel.PivotTables API。 其中一个工作正常,而另一个文件命中错误:“System.AccessViolationException:尝试读取或写入受保护的内存。这往往表明其他内存已损坏”在行: _pivotTable = pivotTables.Add(pivotCache, _chartsSheet.Range[$"$A$30"], "Samplexxx", Type.Missing, Type.Missing); 这个错误只发生在Windows10上。 这两个文件在Windows7上都没有问题。 有没有解决方法或解决这个? 在这个问题上,我确实参考了其他线程,但它不完全一样。 谢谢!

在Visual Studio中部署Excel Addin

我在Visual Studio中成功编写了一个C#中的Excel应用程序级别加载项。 但我似乎与部署斗争。 我已经尝试了ClickOnce和Windows安装程序变种,他们工作正常,但不是我想要的方式:我想能够安装我的加载项,通过按下“COM加载项”在Excel中的“开发人员”选项卡和然后“添加…”但Excel表示: 它不能识别.dll,.vsto和setup.exe文件作为有效的Addin。 截图参考https://imgur.com/a/Bj6Vf 我如何编译Excel识别它的代码? 似乎我在这里错过了一个步骤,我找不到任何解决scheme,所以我想我可以请求你的帮助。

vsto插件为excel 2016年事件没有被解雇

因为几个星期(最后更新?),当我双击浏览器中的xlsx文件,excel启动,但没有事件被激发… 它很容易重现:在visual studio中创build一个vsto excel插件项目 private void ThisAddIn_Startup(object sender, System.EventArgs e) { this.Application.WorkbookOpen += new Excel.AppEvents_WorkbookOpenEventHandler(Application_WorkbookOpen); } private void Application_WorkbookOpen(Excel.Workbook Wb) { MessageBox.Show("ExcelAddin AppEvents_WorkbookOpenEventHandler event fired"); } 在debugging模式下,我设置了以下参数: 启动外部程序:c:… \ excel.exe 命令行参数:xlsx文件名的完整path 如果我启动excel,并用菜单(File / Open)打开文件,则会触发该事件! 感谢帮助!

创build一个macros来调用一个Winshuttle脚本,这个脚本可以自动将产品inputSAP

我对VBA有一些基本的VB.net知识 我正在尝试创build一个将运行Winshuttle脚本以自动将产品引入SAP的Excelmacros。 截至目前,我们需要七个SAP事务来完成系统中的一个产品的创build,所以我试图用Winshuttle自动化每一个事务,并将它们连接到一个Excel工作表中的七个macrosbutton,这样任何人都可以用一个单独的单击。 我确实需要保持每个脚本的合规性,因此使得所有的七个button都不是一个选项。 Winshuttle提供了一个选项,导出一个macros,允许通过Excel调用脚本,我改变了基本的东西,如在计算机中的脚本位置,startrow,endrow,logcolumn和runonrows值,但现在我收到以下错误: 打开工作表时发生错误 你调用的对象是空的 有人可以帮忙吗? 另外是什么呢 按照需求和文件的可访问性改变ALFpath。 “可以写入数据的表单” 意思? 我应该在三行代码之前删除“”“并更改文件path吗? 这是必要的还是一个选项? 完整的代码如下: '———————————————- ' Macro to use runSHUTTLE addin with code '———————————————- Sub RunSHUTTLEfile() ' ' RunSHUTTLEfile Macro ' Dim runSHUTTLEAddin, AddinObject On Error GoTo ErrHandler ' GET ADDIN OBJECT FROM EXCEL Set runSHUTTLEAddin = Application.COMAddIns.Item("TxRunner.AddinModule") If runSHUTTLEAddin Is Nothing Then MsgBox […]

麻烦从macros创buildExcel加载项

我创build了两个VBAmacros函数,在当前工作簿中使用时可以正常工作。 我保存为.xla并作为加载项导入。 然后我通过excel中的菜单find并激活了加载项,但是当我使用函数时,我得到了#NAME错误和“公式包含无法识别的文本”的描述。 我卡住了。