gpt4 book ai didi

excel - 创建适用于任何工作簿的自定义 Excel 功能区选项卡

转载 作者:行者123 更新时间:2023-12-04 20:04:00 24 4
gpt4 key购买 nike

我已经上网几个月了,但还没有真正找到我想要执行的以下任务的解决方案。这是一笔交易。

我正在用 VBA 编写一堆代码,它基本上在工作簿中创建一个新的工作表,其中包含用于工作目的的特定类型的计算器(有很多)。一张纸 - 一种类型的计算器/分析。

我想要完成的是,由于代码量的增加 - 我想把所有东西都放在功能区上,这样我就可以通过它访问一个宏。但是,这项工作是基于个案分析的,因此每个新项目都需要创建一个新的 Excel 工作簿,我可以在其中选择我想要的计算器并完成工作。

除此之外,它需要在网络中的所有带有 Excel 的计算机上启动,我能够修改/添加代码到宏,以便所有 PC 可以同时保持最新状态。

总结一下:

  • 有一堆 VBA 宏(我不断更新/添加);
  • 我需要通过网络中多台计算机上的任何新工作簿(不是一个宏所在)中的功能区访问这些宏;
  • 需要为功能区和宏用户提供代码的即时更新。

  • 那么,是否有任何解决方案,例如 - 我创建 2 个文件(一个带有功能区配置,另一个带有计算器)并将它们放入服务器文件夹中?每个用户在安装过程中访问它们一次(基本上是找到插件所在的文件夹),如果我需要修改一些东西 - 我用服务器文件夹中的这两个文件来做,就是这样。

    如果即时更新所有用户不是真实的或很难(对于非程序员),手动更新可以解决,但必须能够访问每个新工作簿中的功能区的最低要求。

    提前感谢您的帮助。

    最佳答案

    感谢所有为这个问题做出贡献的人。想要总结经验并提供我设法使用它的方式。

    1) 获取您的 VBA 代码

    让我们有一个这样的代码。它可以是你喜欢的任何东西。为此,请在 Developers 中打开 VBA选项卡或按 Alt+F11 .通过右键单击 VBAProject > Insert > Module 创建一个新模块, 命名 sayMsgProperties窗口并输入以下代码:

    Sub saySomething()

    MsgBox "What's up?"

    End Sub

    正如我上面所说的 - 这个模块可以包含任何东西,通常是代码的功能部分,稍后将在另一个模块中调用。

    让我们以与创建第一个模块相同的方式创建一个新模块并将其命名为 sayRibbon .这个单独的模块包含一个调用函数或所谓的“按钮”,它从 sayMsg 运行我们的子程序。模块。 Copy > Paste下面的代码:
    Private Sub sayButtons(Control As IRibbonControl)

    Select Case Control.ID

    Case Is = "saySomething_Btn"
    Call saySomething
    Case Else

    End Select

    End Sub

    基本上,我们这里有一个 Case命名为 saySomething_Btn ,即“按钮”本身,具有定义的调用函数。

    现在 save它作为 Excel 插件文件 .xlamclose该程序。

    注意:当您选择 .xlam时从下拉菜单中,您将自动位于默认 Microsoft > AddIns文件夹。为了将其保存在您的 Desktop ,首先选择文件类型,然后重新定位文件夹。

    2) XML 映射 Office RibbonX Editor

    上面的实用程序为您提供了在 Excel 功能区中创建自定义选项卡的选项。按照链接下载。所有安装和使用说明也可通过该链接获得。
  • 完成安装后,打开 OfficeRibbonXEditor.exe文件。
  • File > Open您的 .xlam文件。现在它出现在下面的列表中。
  • Right click > Insert Office 2010+ CustomUI Part (或 Insert Office 2007 CustomUI Part - 取决于您运行的 Office 版本)。
  • Copy > Paste下面的代码:

  • Code


    <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" xmlns:Q="sayRibbon">
    <ribbon startFromScratch="false">
    <tabs>
    <tab idQ = "Q:rxTabUI" label="Say Something" insertAfterMso="TabView">
    <group idQ="Q:rxGrpUI" label="Say">
    <button id="saySomething_Btn" label="Say Something" onAction="sayButtons" />
    </group>
    </tab>
    </tabs>
    </ribbon>
    </customUI>
  • Validate ,如果出现问题 - 将出现错误消息(如果需要,请调试,但在这种情况下您不应该这样做)。
  • 现在SaveClose功能区编辑器。你只能保存,当.xlam Excel 无法打开。

  • 3) 访问任何工作簿中的 .xlam 加载项

    这种方法的主要目的是提供从 Excel 中的任何工作簿和公司网络中的任何计算机对 VBA 代码的轻松访问,而无需实际将其单独安装在每台单独的计算机上。

    这并不重要 - 您是否只想在您的 PC 或本地网络上访问,安装过程是相同的。
  • 地点 .xlam文件到您选择的任何位置(本地文件夹或服务器)。
  • 转至 Excel > File > Options > Add-Ins .
  • Go...下面的按钮,Browse对于.xlam位置和新闻OK .
  • 确保在列表中标记了加载项。按OK .

  • 注意:我会推荐给 encrypt your VBA出于安全原因,如果您想成为真正可以编辑代码的人 - 以消除任何问题,如果 VBA 代码未加密,则可能出现这些问题。

    我在公司网络上检查了性能,结果非常令人满意。您在代码中执行的所有更改都会在所有用户重新启动其 Excel 应用程序后立即更新。

    不要忘记发布更改说明,并至少保留几个旧版本供人们使用,以防需要或紧急情况。

    只要项目会发展,也许可以使用更复杂的方法,但是由于我目前面临的边界,这种方法目前提供了最佳性能。

    关于excel - 创建适用于任何工作簿的自定义 Excel 功能区选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59892581/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com