Excel 2016中自定义功能区工具错误的VBA代码

时间:2016-08-08 12:17:42

标签: excel vba excel-vba ribbon-control

后面的代码在Excel 2013和之前的中完美运行,但是在安装Excel 2016(通过Office 365订阅)并使用自定义功能区工具打开我的工作簿之后,我得到了一个“可以”找到库“错误。 (没有遗漏的参考资料)

这是一个示例Sub(功能区中的下拉控件),其中弹出错误。 错误发生在Call上,它不喜欢returnedVal。

'Callback for rxdrdnAcctName onAction
Sub rxdrdnAcctName_Click(control As IRibbonControl, id As String, index As Integer)
    On Error Resume Next
    Call rxDropDownItemLabel(control, index, returnedVal)    

    Sheets("Tables").Range("AcctNametoPlot").Value = returnedVal
    If Err.Number <> 0 Then
        LogError(Now & "...RibbonTool--> " & Err.Description)
    End If
End Sub

以下是被称为

的子代码
'Callback for rxdrdnAcctName getItemLabel
Sub rxDropDownItemLabel(control As IRibbonControl, index As Integer, ByRef returnedVal)
    Dim varItems As Variant
    If (control.id = "rxdrdnAcctName" Or control.id = "rxdrdnNewAcctName") Then
        varItems = ThisWorkbook.Sheets("Tables").Range("SortedAcctList").Value
    ElseIf (control.id = "rxdrdnYear" Or control.id = "rxdrdnNewAcctYear") Then
        varItems = ThisWorkbook.Sheets("Tables").Range("YearsList").Value
    ElseIf control.id = "rxdrdnMonth" Then
        varItems = ThisWorkbook.Sheets("Tables").Range("MonthNames").Value
    ElseIf control.id = "rxdrdnCommod" Then
        varItems = ThisWorkbook.Sheets("Tables").Range("CommodityPLNamesList").Value
    ElseIf control.id = "rxdrdnSheetSelectName" Then
        varItems = ThisWorkbook.Sheets("Tables").Range("AllSheetsNames").Value
    End If
    returnedVal = varItems(index + 1, 1)
End Sub

Excel 2016中的内容(用于自定义功能区)发生了哪些变化?

0 个答案:

没有答案