Tag: excel addins

VBA插件:事件不起作用

我只想在所有工作簿中捕获打开和保存事件(有或没有macros)。 据我所知,我需要添加事件启用代码。 我在互联网上find很多例子。 我学到了stackoverflow的例子,如下所示: Excel加载项如何响应任何工作表中的事件? 但它不起作用。 没有人报告任何问题。 所以,我觉得我这里有个简单的错误。 我有下一个Addin,例如: 类模块(ExcelEventCapture) – private: Option Explicit Public WithEvents ExcelApp As Excel.Application Private Sub Class_Initialize() Set ExcelApp = New Excel.Application ExcelApp.EnableEvents = True MsgBox "ExcelApp OK" End Sub Private Sub ExcelApp_NewWorkbook(ByVal Wb As Workbook) Wb.Close savechanges:=False MsgBox "Sorry – you can't create workbooks in this system!" End Sub […]

在macros中调用Excel加载macros函数

我正在开发Excel 2013的加载项,并在Excel加载项中创build了一个函数,如下所示 public string ExcelReturnString() { return "This is the string: hi"; } 我已经使用下面的代码来调用该函数,但它会引发错误。 Application.Run(ExcelReturnString) 我怎样才能在macros中调用外接function?

未列出Excel VBA加载项参考

我将types为“Excel加载项”的Excel项目保存到AppData / Roaming / Microsoft / AddIns下的默认目录中。 扩展名是.xlam。 在重新打开Excel时,此加载项列在“文件” – >“选项” – >“加载项”下,并切换checkbox以将其选中。 在VBA编辑器中,此加载项与列在“文件” – >“选项” – >“加载项”下的其他加载项一起显示,但是不能调用任何代码。 它没有列在可用的参考文献中,当我使用这个窗口浏览它时,它在AddIns目录中没有被检测到 – 尽pipe显然在那里。 我注意到没有问题安装的所有其他外接程序项目都是.xla文件扩展名。 我们正在使用Excel 2010,但当我将项目另存为types为“Excel 97-2003加载项”(扩展名为.xla)时,问题是相同的。 build议表示赞赏。

Excel加载项 – 获取“本工作簿”的工作簿名称

当我使用加载项时,我无法获取工作簿的名称。 我正在尝试开发每次打开Excel时都会运行的加载项,并读取打开的文件的文件名。 如果文件名是XCFIL.SKV然后做一些事情… 这个代码应该这样做,但不是。 我错过了什么? 代码停止,如果我debugging并按F8它工作正常,但它不会自行运行。 Private Sub Workbook_Open() If ThisWorkbook.Name = "XCFIL.SKV" Then MsgBox "y" End If End Sub

哪种技术最适合MS Excel开发附加function?

我需要开发一个Microsoft Excel加载项,并将运行在所有操作系统上,我需要一个强大的集合像(在C#中的数据表,sorting列表)。 最初,我使用C#开发了一个VSTO插件,但是它并没有在MAC OS上运行,因为MAC没有COM技术。

Excel Ribbon中的“自定义”选项卡无法激活

我正在尝试这个来激活一个自定义选项卡: Globals.Ribbons.MyRibbon.RibbonUI.ActivateTab("TabAddin") 它什么都不做。 没有错误,没有标签激活,什么都没有。 如果我更改标签名称到一个非现有的选项卡,它会引发exception,这是显而易见的。 这意味着ActivateTab方法正在做一些事情,但不是它打算做什么。 请帮忙吗? 这是Excel 2016的VSTO。

Office插件错误2709“未find脱机join完成信息”

我有一个用InstallShield LE创build的安装程序,用于在Office 10的Windows 10平板电脑上使用错误错误2709失败的Excel插件。 未find脱机连接完成信息 。 在Windows 7/8 / 8.1上以及Office 2010和2013上的其他任何安装上都没有发生这种情况。 在Google上,我可以看到这不是一个不常见的错误,通常需要删除几个Windows更新(KB3008627和KB2918614),但这些都不存在于有问题的Windows 10中。 那么这是365独特的东西(虽然我会感到惊讶)或者什么与Windows 10?

VBA加载项问题

Excel 2010中的VBA加载项有问题。 我创build了一些parsing我的Excel数据的代码。 我把它做成了一个加载项。 但是,当我加载加载项并运行时,会发生错误。 错误消息说: runtime error 91 object variable or With block variable not set 错误指向rowSize = ActiveSheet.Rows.Count 。 有谁知道如何解决这个错误? 这里是代码, Private Sub Workbook_Open() Dim counter As Long Dim rowSize As Long Dim userId As String Dim answers As String Dim vals As String Dim i As Integer rowSize = ActiveSheet.Rows.Count counter = […]

写入单元格会打开我的VSTO加载项中的ScreenUpdating

我有一个奇怪的问题,Excel在我的开发机器和testing机器上performance不一样。 在我的加载项中,我closures了ScreenUpdating在长时间运行的进程的几个地方。 在我的机器上,这工作正常。 在testing机器上,只要我写入单元格,Excel就设置ScreenUpdating = true 。 下面的代码演示了我的问题。 private void ThisAddIn_Startup(object sender, System.EventArgs e) { Microsoft.Office.Interop.Excel.Application excel = Globals.ThisAddIn.Application; MessageBox.Show(excel.ScreenUpdating.ToString()); excel.ScreenUpdating = false; MessageBox.Show(excel.ScreenUpdating.ToString()); Workbook workbook = Globals.ThisAddIn.Application.ActiveWorkbook; Worksheet w = (Worksheet)workbook.Worksheets[1]; ((Range)w.Cells[1, 1]).Value = "Test"; MessageBox.Show(excel.ScreenUpdating.ToString()); } 在我的机器上,打开Excel提供了三个消息框 “真”,“假”,“假”。 在testing机器上他们说 “真”,“假”和“真”。 我也用远程debugging器进行了检查,并在单元格值设置后立即观察ScreenUpdating属性的变化。 而且,这不是重置ScreenUpdating的唯一的东西。 添加或删除工作表或工作簿也会这样做。 每个系统上的Excel版本相同(14.0.6112.5000(32位))。 什么可能导致这个? 我怎样才能解决这个问题,让Excel尊重我的设置?

RibbonControl属性callback(getPressed,getSupertip等)永不更新

虽然可以直接设置一些办公室function区控件属性(如标签),但大多数都使用callback来设置属性。 例如一个button的图像: <button id="btnRecalculate" getImage="GetRibbonControlImage" label="Recalculate Now" onAction="OnButtonAction" size="normal" /> 文档在这些callback的语法上非常清晰,而不是在什么时候调用这些callback。 我现在面临的一个问题是,当编程改变一个值时,我想修改function区上的一个属性(例如button上的工具提示)。 我有一个为supertip定义的callback,如下所示: <button id="btnSetServerURL" getSupertip="GetSuperTip" label="Set Server URL" /> 和代码隐藏: public string GetSuperTip(IRibbonControl control) { switch( control.Id ) { case "btnSetServerURL": return "Click to set the server URL. (Currently: " + API.URL + ")"; default: return ""; } } 当URL被改变时,下一次用户将鼠标移动到该button上时,我希望调用GetSuperTipcallback,并显示正确的当前URL,但是现在这个值只是第一次被设置,而不会再次被设置。 有什么办法可以得到我所寻求的行为吗? 这是一个Excel加载项,所以据我所知WPF样式绑定不是一个选项。