后面的代码在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中的内容(用于自定义功能区)发生了哪些变化?