Tag: excel addins

当程序devise(VBA,C#)将数组string设置为范围时,奇怪的单元格内字符数限制

我遇到了Excel 2007中的一个问题,这与Microsoft支持在此处描述的Excel 2003的已知问题非常相似(“当您以编程方式将大型数组string设置为”可能“时,您可能会收到”运行时错误1004“范围在Excel 2003“)。 如果运行下面的macros,问题重现: Sub newMacro() Dim longStr As String longStr = String(8204, "a") Dim values(3) For i = 0 To 2 values(i) = longStr Next i Range("A1:C1").Value = values End Sub 将数组值分配给一个范围时,Excel会给出“运行时错误”1004“”错误消息。 但是当string长度是8203个字符时,一切正常。 这种情况在我看来很奇怪,因为Ecxel 2007的“单元格可以包含的字符总数”限制(在此处的 “Excel规范和限制”中提到)是32767。 附加信息: 该问题不会在Excel 2010中重现。 如果没有使用数组,单元格值设置的问题不会重现。 但在我的情况下,这将大大减慢我的代码。 最初,我通过使用NetOffice库以C#编写的Excel加载项来处理Excel时,发现了这个问题。 有没有人遇到这个问题? 有没有解决办法? 微软对此案有何评论? 我没有find任何东西。

如何在VBA中用Excel提示出错

我有一些代码在两个单独的工作簿中查找给定工作表名称的值。 我想要做的是当第一个工作簿没有工作表时,而不是下面的提示,它取消/抛出一个错误,并使用error handling去第二个电子表格。 我该怎么做呢? 目前我正在使用这个代码来实现这一点: fFormString1 = "'" & wkBookRef1 & firstShtName & "'!$L$6/1000" fFormString2 = "'" & wkBookRef2 & firstShtName & "'!$L$6/1000" Application.DisplayAlerts = False 'Does nothing to the prompt On Error GoTo tryTwo 'Following only throws error when prompt is canceled ThisWorkbook.Sheets("Place").Range("E53").Formula = "=" & fFormString1 GoTo endTen tryTwo: ThisWorkbook.Sheets("Place").Range("E53").Formula = "=IFERROR(" & […]

将Excel加载项存储在现有的工作簿中

我目前正在使用Excel-DNA库开发一个Excel加载项。 可悲的是我需要序列化加载项以某种方式到工作簿,所以如果打开工作簿,可能会执行加载项的代码。 之前,我曾经使用VBA和Excelmacros,这些macros已经运行很久了,我可以序列化macros并上传工作簿。 一个软件把数据放入它,并提供编辑的工作簿,我只需打开工作簿的macros执行。 我试图用一个加载项(例如加载加载项和保存工作簿),但没有工作,加载项似乎根本没有保存。 是否有任何其他机会序列化加载项到工作簿,以便刚刚拿到工作簿的人可以执行加载项的代码?

VSTO应用程序部署错误

我正在尝试使用click once安装程序安装应用程序时遇到VSTO错误。 我曾尝试在Windows XP机器上,也在Windows 7机器上。 在客户端机器上打开应用程序时的确切错误是 “以下Microsoft解决scheme无法加载,因为.NET Framework的兼容版本未安装:myApplicationName.vsto” 该应用程序是C#中的VSTO应用程序,embedded在Excel应用程序(框架4)中的WPF选项卡。 应用程序开发的框架已经安装在客户端机器上。 我没有find任何解决scheme在这个线程; 任何帮助将不胜感激。

为选定的范围临时着色边界

我正在制作一个Excel加载项,并使用input框来允许用户select要导出的范围。 select过程的效果很好,但我希望通过在使用的范围周围实现一个彩色边框来显示当前使用的单元格(类似于在Excel中进行求和时,被求和的单元格每个都被赋予不同的彩色边框)。 我不能只是申请一个新的边界,然后清除它,因为这不会保持以前的文档格式。 有没有人有什么build议? 以下链接有非常类似的目标,但没有提供任何解决scheme VSTO:绘制在Excel工作表之上 谢谢!

将checkedlistbox添加到Excelfunction区

我已经创build了一个Excelfunction区。 它包含一个下拉菜单,当您打开工作簿时,工作簿中所有工作表的名称将被填充。 现在我想从下拉列表中select多个工作表,只对这些工作表进行一些操作。 有没有办法从下拉列表中select多个select。 Checkedlistbox控件不适用于Excelfunction区。 这是我知道处理这种情况的唯一方法。 任何帮助将是伟大的。 提前致谢。 这是我的代码: namespace Ribbon { public partial class ExcelRibbon { List<string> Sheets = new List<string>(); private void ExcelRibbon_Load(object sender, RibbonUIEventArgs e) { Globals.ThisAddIn.Application.WorkbookOpen += new Excel.AppEvents_WorkbookOpenEventHandler(Application_WorkbookOpen); } void Application_WorkbookOpen(Excel.Workbook Wb) { SheetsCollection.Items.Clear(); for (int i = 1; i < Globals.ThisAddIn.Application.Sheets.Count; i++) { RibbonDropDownItem item = this.Factory.CreateRibbonDropDownItem(); item.Label = […]

创buildexcelasynchronousfunction

我有一个从互联网上获取数据的Excel函数。 问题是这个函数需要很长时间才能执行,并且会减慢所有的速度。 如果我可以在不改变公式的情况下改变单元格的值,那将会是惊人的! 所以如果我调用返回0的函数=GetNumOfEmployee() ,然后从我的插件,当我得到的结果,我可以用100例如replace该单元格的值。 如果我这样做,公式就会丢失,我不希望发生这种情况。 我为了保存这个公式而做了什么,是通过这样做来改变单元格的格式: this.Application.ActiveCell.NumberFormat = 5; 如果活动单元格的值为0,则该行代码将replace为非常酷的值。 我得到保存公式,我有一个新的价值。 这种方法的问题是,我得到了很多的计算,每次我写这行: this.Application.ActiveCell.NumberFormat = 1234; excel保存在: 很快我就达到了excel所能实现的最大数目的格式化。 在1分钟内,该列表大约有500个格式,很快我无法删除它们。 如果我以编程方式删除它们Excel的行为有点慢,我每次删除一个格式时,我得到的窗口spining鼠标图标。 所以简而言之,一旦我得到了我需要的结果,我将喜欢replace一个单元格的值而不更改它的公式 。 我应该把值放在单元格的右边吗?

如何处理Excel任务窗格中的用户控件,如模式对话框?

我在一个Excel加载项产品上工作,该产品包含一个具有多个用户控件的任务窗格。 我们已将login过程从模式用户窗体对话框移动到用户单击我们的loginfunction区button时显示在任务窗格内的Web浏览器控件。 期望的行为stream程将是: 用户单击function区上的loginbutton – login控件显示在任务窗格中 直到出现login结果(login成功,login失败或用户取消login), 用户将无法使用excel ,就好像正在显示模态login对话框 一旦login或login被取消,用户可以再次使用Excel。 换句话说,我希望任务窗格控件像一个modal dialog一样工作。 我有login控制工作很好,但我不知道有一种方法来模拟模态。 一旦用户点击loginbutton,他们可以自由地继续在Excel中工作,这是我们不想要的。 我一直在思考一些丑陋的解决scheme,比如试图阻止Excel中的每个窗口使用带有SendMessage的WM_SETREDRAW重新绘制,并绑定LockWindowUpdate,但是我真的希望有人会知道更好的方法来完成我正在尝试做的事情。 顺便说一下,这种types的function不仅将用于login控制,或者我们可能会继续,并将其放在modal dialog中。 我们也希望在我们允许用户继续使用Excel之前,让用户必须使用控件的其他两个控件也要这样做。

定义VB Excel.Chart始终有效的事件?

我不是一个职业,我的问题可能很容易,但即使经过一段时间的研究,我也无法解决。 即使Excel文件已保存,closures并重新打开,是否可以创build适用于图表的Excel图表事件(即计算)? 我正在使用Visual Studio 2008.我认为正确的做法可能是在定义一个类,但是如何? 如何将图表计算事件与类事件相匹配? 另一种描述方式是:我想升级Excel图表,以便在计算事件时自行计算,每次打开和编辑excel文件。如何让Excel记住图表onCalculate事件的操作? 你的答案将是一个很大的帮助。 (注意:如果你不知道答案,但对我很好奇,也许投票▲可能会有所帮助)

C#Excel插件使用像公式

好吧,我正在开发一个Excel插件,分析单元格中的文本然后转换它。 我希望它能像excel那样工作,就像绝对值,当你input一个单元格=abs(YOURNUMBER) ,然后它将用你的数字的绝对值代替单元格的文本。 我如何设置的Excel添加添加一个自定义选项,可以接受string像这样,除了使用=molem(YOURSTRING)而不是?