2010-09-01 13 views
6

Ho un progetto che apre un semplice file di Excel e lo popola. Sta funzionando bene fino a questa mattina, quando improvvisamente ha iniziato a darmi l'errore sopra: 'Application' is ambiguous in the namespace 'Microsoft.Office.Interop.Excel'.Ricevo l'errore "Applicazione" è ambiguo nello spazio dei nomi "microsoft.office.interop.excel"

Non ho modificato alcun riferimento al progetto o qualcosa all'interno del file stesso. I riferimenti includono Microsoft.Office.Interop.Excel. La dichiarazione delle importazioni è presente: imports Microsoft.Office.Interop

La dichiarazione dell'oggetto è completa anche: Dim xl As Microsoft.Office.Interop.Excel.Application che è la riga che mi sta dando l'errore!

Ho provato a cercare su Google questo errore, e l'unica risposta è che ho bisogno di dichiarare xl come Microsoft.Office.Interop.Excel.Application.

Il fatto che non sia stato modificato nulla all'interno del progetto né il codice indica che si tratta di un danneggiamento in Visual Studio 2008. Tuttavia, la pulizia e la ricostruzione del progetto, il riavvio di Windows e il riavvio di VS non hanno alcun effetto.

Qualche idea?

+1

rimuovere il riferimento (e tutto ciò che sembra che potrebbe essere un riferimento Excel) e ri-aggiungerlo – BlackICE

+0

non riesco a segnare questo commento come la risposta ...: -p rispondi alla domanda e lo farò. Ho rimosso il riferimento e ha funzionato. –

risposta

3

Rimozione e re-adding il riferimento ha risolto questo problema.

+0

Grazie per questa soluzione. Ciò ha funzionato anche con me per un componente diverso, tvc.ocx di Tektronix (installato con TekVISA v. 4.04). Ho avuto lo stesso errore quando ho spostato un progetto di Visual Studio su un altro computer con la stessa identica versione del software Tektronix. Rimuovendo i riferimenti e aggiungendoli nuovamente (aggiungendo tvc.ocx da "C: \ Programmi \ IVI Foundation \ WinNT \ TekVISA \ Bin \" alla casella degli strumenti e trascinando "Tvc Control" nel modulo principale e aggiungendo Ivi.Visa .Interop.dll da "C: \ Programmi \ IVI Foundation \ VISA \ VisaCom \ Primary Interop Assemblies \"). –

6

Non penso che dovresti avere la linea come Imports Microsoft.Office.Interop. O utilizzare

Imports Excel = Microsoft.Office.Interop.Excel 

e quindi utilizzarlo come:

Dim xl As Excel.Application 

o rimuovere la Imports tutti insieme e usare il nome completo ovunque, come:

Dim xl As Microsoft.Office.Interop.Excel.Application 
0

Ho notato che i problemi si verificano quando si hanno due riferimenti simili, ciascuno in posizioni diverse. Pertanto il programma non è in grado di restringere a quello che stai implicando nel codice.

Basta andare alla pagina delle proprietà e rimuovere uno di loro, e si dovrebbe andare bene.

0

Avevo un problema simile durante la raccolta di un progetto iniziato da qualcun altro (e stava lavorando per loro) e risulta che Visual Studio 2010 considererà la libreria di oggetti di Microsoft Excel 15.0 un riferimento diverso rispetto a Microsoft .Office.Interop.Excel.dll specificamente. Nel mio progetto, ho dovuto rimuovere Microsoft.Office.Interop.Excel.dll e mantenere la libreria di oggetti di Excel 15.0 affinché funzionasse.

1

avuto lo stesso problema ed è stato in grado di identificare il problema e risolvere (nota: il mio problema era con Outlook, ma si è verificato lo stesso errore quando si utilizza Excel):

  1. Vai al progetto >> Aggiungi riferimento >> Assemblee >> (cerca Outlook) e UNCHECK TUTTI Microsoft.Office.Interop.Outlook che vengono controllati (ho controllato la versione 14).
  2. Vai al progetto >> Aggiungi riferimento >> >> COM (ricerca di Outlook) >> controllo di Microsoft Outlook xx Object Library

Dopo aver fatto questo il codice "Dim olObject come Outlook.Application" non aveva più il 'Applicazione' è ambigua nello spazio dei nomi 'Microsoft.Office.Interop.Outlook.

Lo stesso metodo ha lavorato per risolvere Excel

+0

Questo mi ha aiutato a capire che il problema era un riferimento duplicato, ma avevo una risoluzione diversa: scendi i "Riferimenti" in Esplora soluzioni e rimuovi semplicemente il duplicato indesiderato. – TesseractE

Problemi correlati