标签: rubberduck

Rubberduck UI子菜单已禁用

我刚刚在Windows 10操作系统上安装了Rubberduck VBE加载项v2.0.11.2453(MSIL).

当我在Excel中打开一个启用宏的Excel工作簿并启动VBA编辑器时,Rubberduck启动但Rubberduck菜单下的所有命令都被禁用.

我究竟做错了什么?

在此输入图像描述

vba vbe rubberduck

15
推荐指数
1
解决办法
697
查看次数

是否有配置设置来记住VBE中停靠的工具窗口位置?

我刚刚安装了Rubberduck插件.

如果我配置我的vbe窗户,这样我就可以看到你的鸭子窗口它看起来都很可爱但是当我重新启动Excel时它恢复了以前的样式:有没有办法解决这个问题,所以我的配置vbe仍然存在?

excel vba excel-vba rubberduck

11
推荐指数
1
解决办法
228
查看次数

代码检查 - 命名范围参考

在Rubberduck 2.0.11.2453中运行代码检查后,有4个Range引用被标记为:

成员'Range'隐式引用ActiveSheet

有问题的范围是指命名范围.是否有必要限定命名范围参考?

Private Sub RunORatio(ByVal TabNum As Integer)
  Dim Start As Integer, Cat As Integer, iMth As Integer, CurrentRow As Integer, Report As Integer
  Dim wsORatio As Worksheet, wsData As Worksheet, wsMacro As Worksheet
  Dim sMap As String, Test As String

  With ActiveWorkbook
    Set wsMacro = .Worksheets("Macro")
    Set wsORatio = .Worksheets("ORatio" & TabNum)
    With wsORatio
      sMap = "oratio" & TabNum & "map"           
      For CurrentRow = 1 To Range(sMap).Rows.Count             '<---1 here
        Test = Range(sMap).Cells(CurrentRow, 1)                '<---1 Here
        Set wsData …
Run Code Online (Sandbox Code Playgroud)

vba rubberduck

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

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

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

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

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

vba unit-testing assertions vbe rubberduck

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

如何在没有Rubberduck TestModules的情况下交付Excel VBA应用程序?

我一直在使用Rubberduck VBA加载项。

我想在没有参考文献中的Rubberduck加载项的情况下“交付”我的Excel应用程序。您如何处理?例如,是否可以“隐藏” TestModules而不编译它们?

excel vba unit-testing rubberduck

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

如何使用Rubberduck管理本地git存储库

我正在将Rubberduck(版本2.0.13)与本地git存储库结合使用,以便对我的VBA项目进行版本控制.

目前,每次Manage -> Open Existing Repository在Source Control Window中启动Rubberduck时,我都需要重新打开存储库.

有没有更好的方法来处理本地存储库,例如,Rubberduck可以保存此设置吗?我不想使用在线存储库,所以我认为"Unsynced commits"选项卡对我来说无关紧要.

git version-control vba vbe rubberduck

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

如何对VBA代码进行单元测试? - 两个不同的指针

我正在研究这个优秀的教程,但最后我的第一个测试没有通过,因为我可以清楚地看到我正在创建两个不同的数组(和指针),并试图将它们相互比较.

现在我可以看到的教程留下了我添加的几行代码,这也是我看到问题的地方,但没有这些代码甚至没有粗略的代码.

我的所有其他测试方法都与示例相同,除了我创建以下行的方法 - 否则在运行测试时没有任何反应.

Public Sub Run(ByVal dataService As IDataService, ByVal wsService As IWorksheetService)
Dim data As Variant                   'Added this line
data = dataService.GetSomeTable       'Added this line
Call wsService.WriteAllData(data)     'Added this line
End Sub
Run Code Online (Sandbox Code Playgroud)

在这里,我可以看到代码向南...

'@TestMethod
Public Sub WorksheetServiceWorksOffDataFromDataService()
    'Arrange
    Dim dataServiceStub As MyDataServiceStub
    Set dataServiceStub = New MyDataServiceStub
    Dim expected As LongLong
    expected = VarPtr(dataServiceStub.GetSomeTable)  'expected creates an Array

Dim wsServiceStub As MyWorksheetServiceStub
Set wsServiceStub = New MyWorksheetServiceStub

'Act
With New MyTestableMacro
    .Run dataServiceStub, wsServiceStub 'here …
Run Code Online (Sandbox Code Playgroud)

vba unit-testing rubberduck

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

测试模块VBA

我正在尝试编写一个测试模块来测试我在VBA中编写的模块之一.具体来说,我有一个if语句,我希望通过给模块/功能提供错误的初始参数来触发测试模块.我想测试的模块/功能是:

Function TPR_TNR_FPR_FNR(expected_vals As Range, pred_vals As Range, 
val_tested As Integer) As Double

If WorksheetFunction.CountA(expected_vals) <> 
WorksheetFunction.CountA(pred_vals) Then
   MsgBox "Cells in Expected_vals and pred_vals must be the same in length"
   Stop
End If

count_all = 0
For Each cell In expected_vals
  If cell = val_tested Then
    count_all = count_all + 1
  End If
Next cell

count_correct = 0
For i = 1 To expected_vals.Cells.Count
  If (expected_vals.Cells(i).Value = pred_vals.Cells(i).Value) And 
(expected_vals.Cells(i).Value = val_tested) Then
     count_correct = count_correct + 1
  End If …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba rubberduck

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

安装rubberduck后看不到添加?

我是rubberduck的新手,并安装了最新的2.0.11版本.管理员安装后,我去excel并检查我的com-addins,它现在显示在那里rubberduck.我检查了我的programdata文件夹,是的,rubberduck有所有文件等.它只是没有出现在我的excel加入.救命?

操作系统:Windows 7专业版Excel 2007 64位

excel vbe rubberduck

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

如果程序结束,RubberDuck可以测试吗?

我正在使用RubberDuck开发测试,并希望从程序中测试MsgBox输出.问题在于程序在输出MsgBox后立即结束 - 实际上是一个"结束"语句.

当运行RubberDuck测试并使用Fakes.MsgBox.Returns时,会出现一个不确定的黄色结果,并显示消息"运行测试时出现意外的COM异常"

我试过在测试结束时放置一个"Assert.Fail"; 然而,似乎程序结束会引发争议.

RubberDuck中的测试是否可以检测程序是否结束?

vba rubberduck

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