"Messaggio di memoria insufficiente" tramite il metodo OpenText

Traduzione articoli Traduzione articoli
Identificativo articolo: 134826 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo Ŕ stato archiviato. L?articolo, quindi, viene offerto ?cosý come Ŕ? e non verrÓ pi¨ aggiornato.
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Se si apre un file di testo durante la registrazione una macro di Visual Basic in Microsoft Excel 5.0, quando si esegue la subroutine risultante, potresti ricevere un messaggio di "insufficiente memoria" Se il file di testo aperto contiene pi¨ di 69 colonne.

In Microsoft Excel 7.x, si riceverÓ il messaggio di errore se il file di testo contiene pi¨ di 55 colonne. In Microsoft Excel 97, riceverai il messaggio di errore se il file di testo contiene pi¨ di 52 colonne.

Cause

Questo problema si verifica a causa di quella che viene registrato questo processo.

Quando si registra il processo di apertura di un file di testo, una matrice di matrici viene creata per memorizzare le informazioni di analisi nell'argomento del metodo OpenText FieldInfo. Utilizza una notevole quantitÓ di memoria.

Workaround

Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia espressa o implicita. Questo include, ma non Ŕ limitato a, le garanzie implicite di commerciabilitÓ o idoneitÓ per uno scopo specifico. Questo articolo si presuppone che conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire il debug di procedure. Tecnici del supporto Microsoft possono spiegare la funzionalitÓ di una particolare procedura, ma in nessun sono caso a modificare questi esempi per fornire funzionalitÓ aggiuntive o creare procedure per soddisfare specifiche esigenze. Questo problema pu˛ essere evitato modificando la subroutine registrata in modo che utilizzi tre matrici distinte.

Per risolvere questo problema, creare una matrice bidimensionale per memorizzare le informazioni analizzate. La prima dimensione del parametro OpenText metodi FieldInfo specifica il numero di colonna. La seconda dimensione rappresenta il tipo di dati di ogni colonna. Per un elenco dei parametri di tipo dati per il metodo OpenText, cercare "OpenText" nel file di Guida in linea di Excel in Visual Basic.

Metodo 1: Utilizzare se si utilizza il file di testo sono delimitato da colonne

Se si utilizza il file di testo sono delimitati da colonne, utilizzare la macro riportata di seguito:
          Sub OpenText_Ex1()
             Dim ColumnArray(1 To 100, 1 To 2) As Integer
             Dim x As Integer

             ' Create a For-Next that populates the two dimensions of
             ' the ColumnArray array.
             For x = 1 To 100
                ColumnArray(x, 1) = x
                ColumnArray(x, 2) = 1
             Next x

             ' Open the delimited text file using ColumnArray as the
             ' FieldInfo parameter.
             Workbooks.OpenText _
                Filename:="C:\TEST.TXT", DataType:=xlDelimited, _
                FieldInfo:=ColumnArray
          End Sub
				
se si desidera aprire un file di testo per definire in modo esplicito colonne specifiche di un certo tipo di dati, creare una matrice che contiene le colonne che si desidera definire in modo esplicito e uno che contiene il tipo di dati di tali colonne. Colonne che non vengono definite esplicitamente verranno aperto con il tipo di dati generale, in base all'impostazione predefinita.

Nell'esempio riportato di seguito viene aperto un file di testo denominato "C:\Test.txt" con almeno 100 colonne delimitate, con colonne 1, 2, 3, 4, 99 e 100 definito in modo esplicito come tipi di dati di 9 o 3. Un tipo di dati di 9 ignorerÓ la colonna corrispondente. Un tipo di dati di 3 definirÓ la colonna come una data nel formato "MGA."
          Sub OpenTextFile_Ex2()
             Dim ColumnsDesired
             Dim DataTypeArray
             Dim ColumnArray(0 To 5, 1 To 2)

             ' Define the specific column information in two arrays.
             ColumnsDesired = Array(1, 2, 3, 4, 99, 100)
             DataTypeArray = Array(9, 3, 3, 9, 3, 2)

             ' Create a For-Next that populates the two dimensions of
             ' the ColumnArray array.
             For x = LBound(ColumnsDesired) To UBound(ColumnsDesired)
                ColumnArray(x, 1) = ColumnsDesired(x)
                ColumnArray(x, 2) = DataTypeArray(x)
             Next x

             ' Open the delimited text file using ColumnArray as the
             ' FieldInfo parameter.
             Workbooks.OpenText _
                Filename:="C:\TEST.TXT", DataType:=xlDelimited, _
                FieldInfo:=ColumnArray
          End Sub
				

Metodo 2: Utilizzare se si utilizza un file di testo con le colonne a larghezza fissa

Con i file di testo a larghezza fissa, il metodo OpenText utilizza prima dimensione della matrice fieldInfo il carattere iniziale per ogni colonna, di conseguenza, Ŕ necessario definire in modo esplicito la posizione iniziale di ciascuna colonna nella prima dimensione della matrice. La posizione iniziale del primo carattere in un file di testo larghezza fissa Ŕ 0.

Nell'esempio seguente apre un file di testo a larghezza fissa e crea una nuova colonna di ogni 4 caratteri. Caratteri di 23rd non vengono aperti.
          Sub OpenTextFile_Ex3()
             Dim ColumnSizes
             Dim DataTypeArray
             Dim ColumnArray(0 To 5, 1 To 2)

             ' Define the specific column information in two arrays.
             ColumnSizes= Array(3, 8, 12, 16, 20, 24)
             DataTypeArray = Array(1, 1, 1, 1, 1, 9)

             ' Create a For-Next that populates the two dimensions of
             ' the ColumnArray array.
             For x = LBound(ColumnSizes) To UBound(ColumnSizes)
                ColumnArray(x, 1) = ColumnSizes(x)
                ColumnArray(x, 2) = DataTypeArray(x)
             Next x

             ' Open the fixed width text file using ColumnArray as the
             ' FieldInfo parameter.
             Workbooks.OpenText _
                Filename:="C:\TEST.TXT", DataType:=xlFixedWidth, _
                FieldInfo:=ColumnArray
          End Sub
				

ProprietÓ

Identificativo articolo: 134826 - Ultima modifica: martedý 11 febbraio 2014 - Revisione: 2.3
Le informazioni in questo articolo si applicano a:
  • Microsoft Excel 97 Standard Edition
  • Microsoft Excel 95 Standard Edition
  • Microsoft Excel 5.0 Standard Edition
Chiavi:á
kbnosurvey kbarchive kbmt kbprogramming KB134826 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 134826
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com