问题标签 [excel-365]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
excel - Excel VBA 使用哪种随机数生成器?
标题中的问题 - 我想确定 VBA 使用哪个随机数生成器,即在 Randomize 和 Rnd 中?根据微软的文档,Excel 本身使用 Mersenne Twister - 这显然非常好,但你不能播种。我似乎无法在 Microsoft 文档中找到 VBA 的答案。
我为此使用 Excel 365,因为我很欣赏这可能会因版本而异。
excel - 检测新的 Excel 溢出模式并重置它
Excel 有一个新的溢出模式,它带有一个特殊的 @ 函数来替换隐式交集。它与现有的 Excel 不太兼容。所以需要明确启用。好的。
我不确定是什么启用了它,但我怀疑有关办公室内部人员的模糊提示会这样做。UI 中没有明显的选项来启用或禁用此重大更改!
有谁知道这在注册表中的哪个位置进行了更改?可以取消设置回旧模式吗?
此外,是否有一种很好的编程方式来测试这个?我只是寻找 ActiveCell.Formula2 - 如果它说没有方法,那么它是 Excel2016 之前的构建,如果它说“杂项错误”,这意味着它可以启用但不是,如果它返回一个字符串,那么它是启用的。至少今天在我的 Excel 版本上会发生这种情况。但是更有原则的东西会更好。在过去的好日子里,会有 Application.ImplicitIntersectionDisabled 或类似的。
PS Formula2的错误代码不可靠,462?不适用于旧版本的 Excel,通用 1004 出现问题,不适用于不在预览体验计划中的当前版本。
c# - Office 2016 自动化
我有一个遗留的 Excel 项目,它可以在我们的服务器上自动执行 Excel 2007,以便生成隔夜用户编写的报告。它运行良好,但最近在尝试升级到 Office 365(也尝试过 2016)时遇到了一个问题,在创建 Excel.Application 对象后它似乎抛出了 COMException 0x800AC472。
我可以毫无错误地创建对象,但是一旦我尝试调用 Application 对象的任何方法,它就会出错。
这是一个全新的香草服务器,安装了 .Net 4.6 和 3.5 以及 Office 365,仅此而已。
该代码已使用 COM 重新链接以引用 Office 15.0 互操作。同样的代码在 2007 年的旧服务器上仍然可以完美运行。
完整的错误消息:
该代码从未有安装包,我不确定这是否是问题所在?目前我只是将应用程序的 DLL 复制到服务文件夹并使用“sc create”进行安装。我没有安装任何其他运行时或将任何 DLL 复制到 GAC 中?但我也不用工作的 2007 服务器这样做吗?
我是否缺少需要在服务器上安装的运行时?
PS:我确实承认微软曾表示 Office 不支持服务器自动化,但这是一个遗留项目,我需要开始工作,因为所有服务器都在升级,Office 2007 不会安装在较新的服务器上。
excel - Insert formula into cell including strings and variables
Good day I am trying to use VBA to insert the following formula into a Cell:
Where D2 would be a name and E2 would be a date. If i use the macro record i get:
The problem i have is the moment i try to change the cell locations to variables i get broken formulas in the cell, for example something similar to :
where the "@range(SOP1) was supposed to be a variable cell location. i hope this is enough detail.
excel - 覆盖 Excel 新增的自动添加“@”登录公式
[编辑] 好的,所以解决方案是使用 Formula2 或 Formula2R1C1 而不是 Formula 或 FormulaR1C1;只需点击下面第三条评论中的链接即可更好地理解。我将把我的问题留在这里,因为我花了很长时间搜索 MS 文档、StackOverflow 和 Google,但一无所获……当你不知道 Microsoft 的“隐式交集”关键字时,这确实是一个棘手的问题。 ,因为“@”不是一个非常适合搜索的字符。希望我在这里的问题能帮助人们得到JvdV的明确答案。
这确实是一种混乱的处理方式,总是修补而不是使用干净的理论基础,但对于 MS 来说一切照旧。
Excel 现在会自动在公式中添加“@”符号,这会使我的 VBA 生成的公式出错。我怎样才能禁用它?
例如,当我使用诸如 之类的测试引用一整列时A2 = C:C
,Excel 通常会检查列中的每一行C
是否A2
等于该行的值。但是,当 Excel 决定添加 @ 符号时,A2 = @C:C
它只会检查A2 = C2
我的公式是否不再起作用。
我在某些地方读到 @ 符号替换了ThisRow
结构化表的关键字,但这对我知道如何覆盖它没有多大帮助。
问题是我的公式是在 VBA 中生成的,直到 VBA 代码终止后才添加 @ 符号......所以我不能使用Replace(myFormula, "@", "")
. 即使我在 VBA 中强制范围的公式计算并用它的值覆盖公式,它也不起作用。
有任何想法吗?
避免使用 Microsoft 的另一个原因……呃……我希望我可以将 GSheets 用于此工具。
vba - 对于升级到 Win10/Excel 365 的某些用户,Windows 7/Excel 2010 中的现有 VBA 宏无法保存 .xlsm
互联网上有很多这样的问题,但没有一个能引导我找到解决方案。希望我能在这里找到一些解脱。
我有一个用户社区,他们目前正在从 Windows 7 迁移到 Windows 10,随之而来的是从 Office 2010 迁移到 Office 365。由于这次迁移,我的一些(不是全部)用户有开始遇到在 Win7/Excel 2010 中运行良好的宏的问题,但现在在 Win10/Excel365 中引发错误。失败的特定代码行是application.saveas语句:
我已经测试和/或检查了以下内容:
整个路径名是正确的,即其中没有意外字符,它指向一个有效的联网位置,没有拼写错误等。这绝对不是问题。此外,使用的路径是完全限定的网络路径(使用计算机名称本身,而不是盘符)。而且,当我将路径切换到 C:\Users<username>\filename 时,遇到问题的用户没有得到缓解
换成;;
FileFormat:=xlOpenXMLWorkbookMacroEnabled
_FileFormat:=52
没有骰子为正确填写的另存为对话框交换整行代码。在执行命令中产生相同的错误。下面的代码:
检查用户的加载项;这里没有发现任何有趣的东西。他们的加载项与我不同,但我让他们禁用了所有加载项,但这仍然不起作用
遍历用户的整个信任中心,并尽我所能将其与我自己的(我的机器工作正常)对齐。我们发现了一个我们认为值得更改的设置,但它没有效果
我确信到目前为止遇到问题的用户(像我一样)收到了全新的计算机,并且安装了新的 OS/Office 版本。所以我已经排除了这个原因。
我已经在关闭并打开图形加速的情况下成功运行了宏,从而排除了这个问题(这在我第一次升级时导致了其他 Excel 问题)。
社区对我可能考虑或尝试的其他任何想法将不胜感激,因为此时我完全不知道接下来要尝试什么。
谢谢!