标签: excel-addins

用于检查单元格内容的Excel公式

我试图在运行时(huzzah)为加载项(双huzzah)创建一些条件格式,并且发现显然某些函数不能像在普通工作表中那样使用.(当我尝试创建引用我可以在单元格中调用的VBA函数的CF时,我只得到一个无效的过程调用错误5,即使它在加载项而不是工作簿中;我可以使用内置函数创建CF罚款在函数中.)我发现最清楚的确认是在这里,但它并没有真正解释问题是什么; 这是深奥的部分,我希望能够更多地了解我对此的期望.

橡胶与道路部分是:我可以完全避免使用VBA,并使用一系列仅限Excel的内置函数来验证给定单元格是否包含常量(即用户输入的值),公式(即某种计算,逻辑运算等 - 几乎以=)或链接(即对另一个工作表或另一个工作簿中的单元格的引用)开始?我知道Excel有这个决心触手可及; 见证GoTo/Special的用途和速度.如何得到它虽然?

在此先感谢您的帮助.

excel vba excel-vba excel-addins

8
推荐指数
1
解决办法
9587
查看次数

如何在使用Visual Studio 2010创建的Excel加载项中执行.Onkey事件?

我正在使用Visual Studio 2010创建Excel加载项.我想在用户单击组合键时运行一些代码.

这是我得到的代码

Public Class CC

Private Sub ThisAddIn_Startup() Handles Me.Startup
    EnableShortCut()
End Sub

Sub A1()
    MsgBox "A1"
End Sub

Sub A2()
    MsgBox "A2"
End Sub

Sub A3()
    MsgBox "A3"
End Sub

Public Sub EnableShortCut()
    With Application
        .OnKey "+^{U}", "A1"  'action A1 should be performed when user clicks  Ctrl + Shift + U
        .OnKey "+^{L}", "A2"  'action A2 should be performed when user clicks  Ctrl + Shift + L
        .OnKey "+^{P}", "A3"  'action A3 should be performed when user …
Run Code Online (Sandbox Code Playgroud)

vb.net excel vsto visual-studio excel-addins

8
推荐指数
1
解决办法
7453
查看次数

Excel函数在由后面的代码设置时抛出异常.在excel中使用时可以工作

我已经定义了自己的Excel函数(称为ADXExcelFunctionDeescriptor).方法存根如下所示:

public static object ExecuteMyFunction(object values, object tagName)
{ // Some code here }
Run Code Online (Sandbox Code Playgroud)

该方法接收一个double值数组和一个名为name的字符串.
在设计视图中,我的ADXExcelFunctionDeescriptor如下所示:

在此输入图像描述

我通过以下代码行调用并设置函数:

var formula = string.Format(@"={0}({1};{2})", Temp.FORMULA_NAME, this.DataRangeTextBox.Text, tagCaption);
resultRange.set_Value(Type.Missing, formula);
resultRange.Formula = resultRange.Value;
Run Code Online (Sandbox Code Playgroud)

这将导致异常!例外情况如下:

System.Runtime.InteropServices.COMException occurred
  HResult=-2146827284
  Message=Ausnahme von HRESULT: 0x800A03EC
  Source=""
  ErrorCode=-2146827284
  StackTrace:
       bei System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
       bei Microsoft.Office.Interop.Excel.Range.set_Value(Object RangeValueDataType, Object )
       bei bb.ExcelToolbar.Controls.bbControl.ApplyFormula(Object sender, EventArgs e) in c:\xx\yy\zz\bb\bb.ExcelToolbar\Controls\bbControlcs:Zeile 88.
  InnerException: 
Run Code Online (Sandbox Code Playgroud)

此外,如果我没有传递tagName参数,该函数将返回一个没有任何异常或错误的结果.

var formula = string.Format(@"={0}({1})", Temp.FORMULA_NAME, this.DataRangeTextBox.Text, tagCaption);
resultRange.set_Value(Type.Missing, formula);
resultRange.Formula …
Run Code Online (Sandbox Code Playgroud)

c# excel excel-formula excel-addins addin-express

8
推荐指数
1
解决办法
687
查看次数

如何从python调用excel加载项

有没有办法从python调用Excel加载项?在我的公司中,有几个可用的 excel 加载项,它们通常提供对某些数据库的直接访问并进行额外的计算。

直接从 python 调用这些函数的最佳方法是什么?

澄清一下,我对从 excel 访问 python 不感兴趣。我对从 python 访问 excel-addins 感兴趣。

python excel-addins

8
推荐指数
2
解决办法
4579
查看次数

安全的VBA Excel加载代码

我有一个在VBA中开发的Excel插件,部署在网络上.

插件从Oracle数据库中读取,并在新工作表中粘贴表,该工作表还将包含一个用于刷新表的按钮(三角形).

一切都很好,但我必须用密码保护代码.

当我这样做时,某些机器上会出现以下错误:

隐藏模块中的编译错误:Main.当代码与此应用程序的版本,平台或体系结构不兼容时,通常会发生此错误.

虽然它在解锁时完美编译.

在其他机器上,它需要关闭VBA密码,即使我没有在关闭事件下定义的类型.

我希望保护我的代码,而不会遇到上述问题.任何建议表示赞赏.

excel vba excel-vba excel-addins

8
推荐指数
1
解决办法
713
查看次数

如何解决Excel禁用加载项的原因?

我使用Add-in Express在.NET中编写了一个Microsoft Excel加载项,并将其部署到大约50个不同的用户站点,所有这些站点都在Windows XP上运行Office 2003.加载项在大多数站点上都能正常工作,但在少数情况下,Excel似乎会在一段时间后禁用加载项,并且必须在禁用的项目列表中找到它才能重新启用.重新启用似乎会照顾它,至少是暂时的,尽管现在说它是否会再次发生还为时尚早.所以我试图找出Excel为什么禁用加载项,但我在这里寻找的只是一种通用的方法来找出Excel禁用加载项的原因.在我的情况下,加载项在远程站点上运行,并且我对访问故障的访问权限有限.我确实查看了事件日志并没有发现任何事情.我的加载项中也有错误记录,但没有捕获任何内容.

有什么建议?

excel excel-addins

7
推荐指数
1
解决办法
3万
查看次数

可以告诉Excel加载项中哪个工作簿称为函数(xla)

我想在excel加载项中编写一个小日志功能,我将从许多不同的工作簿中调用它.我希望能够通过仅传递日志文本来调用它,并且日志函数本身可以处理时间戳,工作簿名称等.

但是,我不能使用ThisWorkbook或ActiveWorkbook来确定哪个工作簿负责进行调用,因为Thisworkbook将返回对加载项本身的引用,而在工作簿中运行的VBA代码可以在Excel中主动关注的工作簿中运行进行调用,但ActiveWorkbook将返回窗口中具有焦点的那个.

Application.Caller看起来像一个可能的解决方案,但这似乎仅在从单元格调用函数时才起作用,而不是从VBA调用.

我想做什么不可能?

更新

根据> 1人,这实际上是不可能的.如果有人碰巧知道一些聪明的解决方法,请大声说出来.

excel vba xla excel-vba excel-addins

7
推荐指数
1
解决办法
3788
查看次数

使用 yo Office 运行 Excel 任务窗格项目后收到“office-addin-debugging 未被识别为内部或外部命令”

office-js由于显然缺少“office-addin-debugging”,我无法启动Excel 任务窗格加载项项目。但是,我注意到该模块包含在我的开发依赖项中。我按照官方网站上的示例教程进行操作。错误消息可以在下面看到

'office-addin-debugging' is not recognized as an internal or external command,
operable program or batch file.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! office-addin-taskpane-js@0.0.1 start:web: `office-addin-debugging start manifest.xml web`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the office-addin-taskpane-js@0.0.1 start:web script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

Run Code Online (Sandbox Code Playgroud)

excel excel-addins office-js

7
推荐指数
2
解决办法
6909
查看次数

Excel Javascript 插件:如何在任务窗格中打开 ExecuteFunction 而不是新的 iframe?

我正在尝试使用 Excel Javascript API 创建一个插件:

  • 在主页选项卡上添加多个按钮。
  • 每个按钮都会将任务窗格打开到不同的屏幕。
  • 这些任务窗格中的每一个都在相同的运行时中运行(例如,我只需在 中设置数据即可在它们之间共享数据window.data = "data")。

据我所知,不可能ShowTaskpane通过按钮上的多个操作来做到这一点,因为这似乎不适用于共享运行时

我目前采取的方法是:

  1. 将我的函数文件设置为
<FunctionFile resid="Taskpane.Url"/>
Run Code Online (Sandbox Code Playgroud)

(其中<bt:Url id="Taskpane.Url" DefaultValue="https://localhost:3000/taskpane.html"/>

  1. 定义以下操作:
<Control xsi:type="Button" id="FirstButton">
    ...
    <Action xsi:type="ExecuteFunction">
        <FunctionName>first</FunctionName>
    </Action>
</Control>
<Control xsi:type="Button" id="SecondButton">
    ...
    <Action xsi:type="ExecuteFunction">
        <FunctionName>second</FunctionName>
    </Action>
</Control>
Run Code Online (Sandbox Code Playgroud)
  1. 在全局范围内定义firstsecond作为函数(并在taskpane.html文件中定义)。这些函数中的每一个 a) 在 Taskpane 应用程序中设置一些状态(以使其显示不同的内容,具体取决于函数调用),然后调用Office.addin.showAsTaskpane(). 代码大致如下:

从按钮调用的第一个函数的代码

但是,这不会按预期工作。也就是说,它在任务窗格一侧的单独 iframe 中打开任务窗格。它看起来像这样:

共享功能在新的 iframe 中打开

当我添加Office.addin.showAsTaskpane()share函数的调用时,它看起来像这样:

showAsTaskpane 只会导致任务窗格以及新的 iframe 打开

如何使用执行功能操作但在任务窗格中执行此操作?我想要一个共享的运行时,并且我希望所有的运行时都打开并位于任务窗格中。该文档使 AppDomains 似乎可以实现这一目标,但我不确定我做错了什么。

感谢您提供任何信息 - 我真的很感激!

office-addins excel-addins office365 office-js

7
推荐指数
1
解决办法
520
查看次数

跟踪预防阻止了对 https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js 存储的访问

大约一年半前,我使用 OfficeJS API 编写了一个 Excel 加载项,它一直工作到大约两周前。Excel 似乎已经进行了更新,现在我可以右键单击任务窗格并查看开发工具,而以前我无法做到这一点,并且必须运行外部 MS Edge 开发工具应用程序进行调试。这似乎是一个相对较新的问题,我似乎找不到任何有关它的信息。我尝试将 MS Edge 的跟踪预防设置减少为基本设置,如下所示:

MS Edge 的跟踪设置

我向 appsforoffice.microsoft.com 授予了 javascript 权限,因为 devtools 说它正在阻止此文件,特别是控制台中的https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js 。我还只包含了 microsoft.com 以及该公司的 URL 和 cdn url。我还添加了 localhost,因为这也在我的计算机本地发生。我似乎无法专门更改 Excel 中的任何阻止设置,但我的假设是 Excel 为加载项运行 Edge 实例,因为我可以在 Edge devtools 中跟踪它。

我阅读了此处找到的文章https://learn.microsoft.com/en-us/microsoft-edge/web-platform/tracking-prevention,以了解我可以更改什么,但这里的解决方案都不适合我。看起来 Edge 的设置几乎没有被读入 Excel,因此它总是阻止任何尝试从 localStorage/sessionStorage 读取数据的应用程序。

我在加载项中使用 sessionStorage 来写入数据以进行读回,并尝试了 localStorage,但我仍然遇到相同的错误。

更奇怪的是,我试图读出的数据来自我写入存储的数据,当我查看 devtools 中的存储选项卡时可以看到它的写入没有问题,因此问题仅限于读取存储。

有谁知道如果这些更改没有从 MS Edge 更新或者最近与 Excel 一起发布了一个新错误,则需要在哪里对跟踪进行更改才能使 Excel 加载项能够从存储中读取数据?

编辑:为了更清楚地了解确切的问题,我的添加基本上从单元格中读取文本和值,并根据我为用户定义的标签,这些值将在包含用户想要的标签的 HTML 元素中输出产生。例如,当用户想要一个段落时,他们可以使用 /para 和 /end para 标记单元格,并且其间的行/单元格中的任何文本和值都将在 HTML 段落标记中输出。他们还可以构建这样的 HTML 表格。在读取文本和值的过程中,这一切都会构建成一个名为previewString我存储在 sessionStorage 中的字符串,以便可以打开一个对话框窗口并previewString从 …

javascript session-storage excel-addins office-js

7
推荐指数
1
解决办法
1万
查看次数