标签: vbe

VBProjectsEvents在哪里?

Microsoft.Vbe.Interop在C#中使用,我可以访问CommandBarEventsReferencesEvents通过VBE.Events.

然而,那些非常有用的MSDN文档似乎表明,VBProjectsEvents当向VBE添加项目或从VBE中删除项目时,我可以使用它来通知我的加载项...这正是我在这里想要实现的.

我可以_VBProjectsEvents对象浏览器中看到该接口,但没有实现它(而不是_CommandBarControlsEvents接口,由它实现CommandBarEventsClass),使用ReSharper的实现功能.

_VBProjectsEvents任何地方都有接口的实现吗?如果没有,那么如何通知从VB中删除VBProject?

c# events com-interop vbe

6
推荐指数
1
解决办法
141
查看次数

使用Rubberduck单元测试,如何找出多个断言中的哪一个失败?

我正在使用Rubberduck对我的VBA实现进行单元测试.当Assert.IsTrue在一个TestMethod中使用相同类型的多个Assert(例如)时,测试结果并没有告诉我哪个失败,据我所见.

有没有办法找出哪个Assert失败或者这是在Rubberduck未来路线图上?当然我可以添加自己的信息,例如Debug.Print在每个Assert之前使用,但这会导致很多额外的代码.

我知道在一次测试中对于多个Assert有不同的看法,但我选择在我的情况下使用它们,这个讨论已经在其他地方讨论过了 .

vba unit-testing assertions vbe rubberduck

6
推荐指数
1
解决办法
419
查看次数

可以使用IDTExtensibility2为VBA IDE创建64位插件吗?

是否可以创建一个可加载到 Office 2010 64 位 Visual Basic 编辑器中的 COM 加载项?我可以将我的加载项加载到 Office 2010 32 位中,但它只是被 64 位版本忽略。

编辑:在我的研究中,我发现许多流行的 VBE 加载项不适用于 64 位 Office(例如 Code Cleaner、MZ Tools、VBE 工具等)。其中许多是因为它们是在 32 位 VB6 中构建的,但有人知道有任何可以在 64 位 Office 中运行的 VBA IDE 插件吗?

com vba add-in vbe

5
推荐指数
1
解决办法
754
查看次数

在启用了加载项的新VBA项目/新Excel实例中,*.xlam加载项和缺少引用

摄制:

  • 启动Excel并打开VBE ALT+ F11.

  • 查找Tools并单击References.

  • 向下滚动直到找到Microsoft Scripting Runtime并勾选它.

  • 将文件保存为Addin.xlam默认位置,该位置应为:

    C:\Users\username\AppData\Roaming\Microsoft\AddIns

  • 关闭此Excel实例

  • 启动一个新实例并打开VBE(您现在应该看到 第二个VBA项目可用于工作簿.如果您没有打开选项卡,那么加载项并勾选名称旁边的框以打开它 - 保存,关闭,打开一个新的Excel实例)Addin.xlam Developer

  • 添加新的标准模块

  • 打开References,您应该只看到4个勾选(默认)

  • 向下滚动并尝试查找Microsoft Scripting Dictionary- 它不存在!?

因此,这基本上意味着您无法添加对新VBA项目(Book1)的引用,因为您*.xlam已经在使用它

Scripting因为尝试你不能交叉使用库

Dim d as Dictionary
Run Code Online (Sandbox Code Playgroud)

在新创建Module1失败,因为它不识别Dictionary对象....

这是一个我从未意识到的已知错误或者我完全忽略了什么?任何解决方法?

excel vba excel-vba excel-addins vbe

5
推荐指数
1
解决办法
1159
查看次数

为什么 VBA 编辑器会打开 Outlook?

有时,当我检查 excel 宏上的某些变量时,Outlook 会自行打开。这很烦人,因为我什至不使用 Outlook 也没有配置它。这里发生了什么?

我正在使用 Office 2016。


编辑:我认为这与实际的宏没有任何关系,但无论如何,这里是:

Sub duplicateSheets()
    Dim i As Integer
    For i = 1 To 3
        ThisWorkbook.Sheets("classes").Copy _
            After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)

        ThisWorkbook.Sheets("pivot").Copy _
            After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)

Outlook 在我检查时打开ThisWorkbook.Sheets("classes")

excel vba vbe

5
推荐指数
1
解决办法
576
查看次数

选择命令在 VBA 中更改为小写

当我的同事编写一个包含Selection引用的宏时,出于某种原因,它将单词更改Selection为小写s并停止工作。

例子:

Selection.Copy
Run Code Online (Sandbox Code Playgroud)

更改为

selection.Copy
Run Code Online (Sandbox Code Playgroud)

有人可以告知发生了什么吗?我猜他在某处的设置,因为他以前没有写过任何宏。

excel vba selection vbe

5
推荐指数
1
解决办法
749
查看次数

确定VBE是否打开

我正在尝试开发一个'自动运行'宏来确定VBE是否打开(不一定是焦点窗口,只是打开).如果这是真的那么......采取一些行动.

如果这个宏连接到CommandButton它可以工作,但我不能让它在ThisWorkbook中的任何地方运行:

Sub CloseVBE()
    'use the MainWindow Property which represents
    ' the main window of the Visual Basic Editor - open the code window in VBE,
    ' but not the Project Explorer if it was closed previously:
    If Application.VBE.MainWindow.Visible = True Then
        MsgBox ""
        'close VBE window:
        Application.VBE.MainWindow.Visible = False
    End If

End Sub
Run Code Online (Sandbox Code Playgroud)

我得到了以下功能来做同样的事情,但我无法让它工作:

Option Explicit

Private Declare Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowText Lib …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba vbe

5
推荐指数
1
解决办法
642
查看次数

将 Visual Basic 编辑器的语言更改为英语

Microsoft Office更新到2016版本后我发现VBA界面是德语的。我怎样才能将其恢复为英文?

我的 Windows 10 设置设置为英语,本地设置首选项也全部为英国英语(日期、小数点等)。

我将 Office 首选项语言设置为英语。

请查找随附的屏幕截图

excel vba ms-office vbe

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

找不到损坏的 VBA 项目模块错误

我有一本昨天下午保存的工作簿,并且运行良好。我今天早上打开了它,但没有“找到”VBE 中的任何模块。从视觉上我可以看到他们都坐在那里。

在此处输入图片说明

当尝试打开这些模块中的任何一个来编辑代码时,窗口会变灰,如下所示。

在此处输入图片说明

当我尝试导出代码模块时,出现“找不到模块”错误。

在此处输入图片说明

有谁知道 a) 为什么会发生这种情况,以及 b) 我该如何解决这个问题?

我最初以为是我的 Excel 的实例,所以重新启动了 PC。

任何帮助表示赞赏!

excel vba vbe

5
推荐指数
1
解决办法
3529
查看次数

损坏的工作表对象

我注意到 Excel VBA 有一个奇怪的行为。“项目”窗口显示一些无法删除且不属于有效工作表的孤立工作表对象(例如“Sheet16”)。看看这些孤儿,我可以看到它们包含原始工作表中的回调函数(例如“ShowCI”)。Excel 正在创建与工作表相关的新工作表对象(例如“Sheet161(ShowCI)”),但它没有仍位于孤立对象中的回调函数。我在网上看到了将内容导出到新工作簿中以解决该问题的建议,但这很烦人(尤其是在使用大量复杂的 VBA 和用户表单的文件上完成),并且并不能真正防止再次发生。

在此输入图像描述

我很想避免这种情况,并知道这些腐败可能从何而来。那么是什么原因导致它们呢?

感谢您提供有用的建议;-)

问候

excel vba corruption vbe

5
推荐指数
0
解决办法
137
查看次数