2014-09-28 15 views
21

Sto cercando di isolare il problema che causaExcel problema "Excel 4.0 funzione memorizzata in nomi definiti"

"Excel 4.0 funzione memorizzata in nomi definiti"

Quello che non riesco a capire è il motivo dietro Questo.

Excel Issue During Save

Questo problema ha iniziato a venire da poco e non riesce a capire perché.

+0

Avete nomi definiti? In tal caso, elencali e vedi cosa fanno riferimento a: –

+0

@RonRosenfeld Sì, ho nomi che puntano a tabelle e liste di convalida dei dati che puntano a formule come = INDIRETTO ("TableName [Column_Header_Name]") è un problema? – Ayusman

+0

Ciò che pubblichi non è un problema; ma "qualcosa del genere" non è quello che stai realmente usando. Ti sei assicurato che NESSUNO dei tuoi nomi definiti sono gli stessi del nome di una macro xlm4? Se lo hai, dovrai rimuovere i nomi definiti uno a uno finché non trovi quello che causa il problema. –

risposta

41

non urtare un vecchio thread, ma ho avuto questa stessa problema pure e volevo postare la mia risoluzione nel caso in cui qualcun altro sperimentasse la stessa cosa di me stesso.

Il mio problema è stato causato da un componente aggiuntivo MySQL Excel COM che era un componente incluso nel pacchetto MySQL Workbench. La disattivazione del componente aggiuntivo ha causato la scomparsa del prompt macro durante il salvataggio dei fogli di lavoro.

+11

ha funzionato per me. Per disabilitarlo, fare clic sulla scheda File, fare clic su Opzioni e quindi fare clic sulla categoria Componenti aggiuntivi. Nella casella Gestisci, fare clic su Componenti aggiuntivi COM e quindi fare clic su Vai. Viene visualizzata la finestra di dialogo Componenti aggiuntivi. Nella casella Componenti aggiuntivi disponibili, deselezionare la casella di controllo MySQL e fare clic su OK. – OutputLogic

+2

Per aggiungere a questo, sarà necessario riavviare Excel per rendere effettive le modifiche. – BitBug

+1

Sulla base del suggerimento di cui sopra ho appena eseguito MySQL Installer e rimosso MySQL per Excel e questo lo ha risolto per me. – mbird

0

hai installato qualche connettore per Excel ?, forse questo sta causando il problema, basta disinstallarlo e l'errore sarà sparito.

13

Per me questo messaggio è stato causato dal componente aggiuntivo COM MySQL per Excel. Il messaggio ha smesso di apparire quando ho scaricato il componente aggiuntivo COM.

1

Come nella risposta di ChipsLetten, la stessa soluzione qui sul mio computer: quando si salva una cartella di lavoro (in realtà senza macro), viene visualizzato un avviso "Funzione Excel 4.0 memorizzata in nomi definiti" e un'opzione per salvare la cartella di lavoro come "macro" -abilitato". Alla disattivazione del componente aggiuntivo COM "MySQL per Excel", l'avviso non viene più visualizzato.

Per disabilitare il componente aggiuntivo "MySQL per Excel" (se è stato installato): scheda "Sviluppatore", quindi pulsante "Componenti aggiuntivi COM" e viene visualizzato un elenco di componenti aggiuntivi che puoi abilitare o disabilitare per segno di spunta.

4

Ho lo stesso problema in Excel 2013 e è stato risolto scaricando il MySQL Aggiungi in - ho fatto questo andando su File - Opzioni - Aggiungi Ins

5

La soluzione già indicata è corretta: disabilitare il componente aggiuntivo COM MySQL per Excel.

Il motivo del messaggio è che questo componente aggiuntivo aggiunge nomi nascosti alla cartella di lavoro. Questi nomi non sono visibili in Gestione nomi di Excel. Ma si può vedere nella finestra VBA diretto se si aggiunge questo codice a un modulo cartella di lavoro:

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 

Risultato (per un'istanza tedesca di 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) 

Questi nomi si aggiungono a la cartella di lavoro attiva nel momento in cui si fa clic sul pulsante del componente aggiuntivo (che apre il task). Sfortunatamente, non ho ancora scoperto perché il componente aggiuntivo MySQL a volte aggiunga questi nomi da solo senza essere attivato.

Aggiunto: Questo è un bug noto nella MySQL per Excel add-in come di http://bugs.mysql.com/bug.php?id=73467

0

Se si dispone di fogli di lavoro con campi nascosti, come descritto nella risposta di consulenza Domke, è possibile utilizzare il seguente codice per rimuovere loro:

Public Sub Remove_Hidden_MySQL_Names() 

Dim n As Name 
For Each n In ActiveWorkbook.Names 
    If Not n.Visible Then 
     'Delete Names added by MySQL for Excel add-in 
     If (InStr(n.NameLocal, "LOCAL_") <> 0 And (InStr(n.NameLocal, "_FORMAT") <> 0 Or _ 
                InStr(n.NameLocal, "_SEPARATOR") <> 0)) Then 
      Debug.Print "Would delete", n.NameLocal, n.RefersToLocal 
      'If you want to delete the name, uncomment this line: 
      'n.Delete 
     Else 
       Debug.Print "Keeping", n.NameLocal, n.RefersToLocal 
     End If 
    End If 
Next 
End Sub