Excel发出"以定义的名称存储的excel 4.0函数"

Ayu*_*man 23 excel excel-formula

我试图找出引起的问题

"以定义的名称存储的excel 4.0函数"

我无法弄清楚的是这背后的原因.

保存期间的Excel问题

这个问题最近开始出现,无法弄清楚原因.

小智 44

不要碰到一个旧线程,但我也有同样的问题,并希望发布我的决议,万一其他人经历与我自己相同的事情.

我的问题最终是由一个MySQL Excel COM加载项引起的,该加载项是MySQL Workbench包中包含的一个组件.在保存电子表格时,禁用该加载项会导致宏提示消失.

  • 为我工作.若要禁用它,请单击"文件"选项卡,单击"选项",然后单击"加载项"类别.在"管理"框中,单击"COM加载项",然后单击"执行".将出现"加载项"对话框.在"可用加载项"框中,取消选中"MySQL"复选框,然后单击"确定". (12认同)
  • 要添加到此,您需要重新启动Excel才能使更改生效. (2认同)

Chi*_*ten 13

对我来说,这条消息是由MySQL For Excel COM加载项引起的.卸载COM加载项时,消息停止显示.


小智 5

已经指出的解决方案是正确的:禁用MySQL for Excel COM加载项.

消息的原因是此加载项将隐藏的名称添加到工作簿.这些名称在Excel名称管理器中不可见.但是,如果将此代码添加到工作簿模块,则可以在VBA Direct窗口中看到它们:

Public Sub DEV_CheckNames()

Dim n As name
For Each n In ActiveWorkbook.Names
    If Not n.Visible Then
        Debug.Print n.NameLocal, n.RefersToLocal
        'If you want to delete the name, uncomment this line:
        'n.Delete  
    End If
Next
End Sub
Run Code Online (Sandbox Code Playgroud)

结果(对于Excel 2013的德语实例):

LOCAL_DATE_SEPARATOR        =INDEX(ARBEITSBEREICH.ZUORDNEN(37);17)
LOCAL_DAY_FORMAT            =INDEX(ARBEITSBEREICH.ZUORDNEN(37);21)
LOCAL_HOUR_FORMAT           =INDEX(ARBEITSBEREICH.ZUORDNEN(37);22)
LOCAL_MINUTE_FORMAT         =INDEX(ARBEITSBEREICH.ZUORDNEN(37);23)
LOCAL_MONTH_FORMAT          =INDEX(ARBEITSBEREICH.ZUORDNEN(37);20)
LOCAL_MYSQL_DATE_FORMAT     =WIEDERHOLEN(LOCAL_YEAR_FORMAT;4)&LOCAL_DATE_SEPARATOR&WIEDERHOLEN(LOCAL_MONTH_FORMAT;2)&LOCAL_DATE_SEPARATOR&WIEDERHOLEN(LOCAL_DAY_FORMAT;2)&" "&WIEDERHOLEN(LOCAL_HOUR_FORMAT;2)&LOCAL_TIME_SEPARATOR&WIEDERHOLEN(LOCAL_MINUTE_FORMAT;2)&LOCAL_TIME_SEPARATOR&WIEDERHOLEN(LOCAL_SECOND_FORMAT;2)
LOCAL_SECOND_FORMAT         =INDEX(ARBEITSBEREICH.ZUORDNEN(37);24)
LOCAL_TIME_SEPARATOR        =INDEX(ARBEITSBEREICH.ZUORDNEN(37);18)
LOCAL_YEAR_FORMAT           =INDEX(ARBEITSBEREICH.ZUORDNEN(37);19)
Run Code Online (Sandbox Code Playgroud)

在您单击加载项按钮(打开任务窗格)的那一刻,这些名称将添加到活动工作簿中.不幸的是,我还没有发现为什么MySQL加载项有时会自动添加这些名称而不会被激活.

补充:这是MySQL for Excel加载项中的已知错误,自http://bugs.mysql.com/bug.php?id=73467起