matrice senza celle vuote
Hai un problema con Excel? 
matrice senza celle vuote
di ornello (utente non iscritto) data: 13/01/2016 13:24:46
Ciao a tutti ,
prendo spunto ancora dalla discussione emersa la scorsa settimana. chiedo un vs parere riguardo il seguente problema:
vorrei caricare in una matrice( enon + in un vettore) dei valori numerici provenienti da una tabella in un foglio xls. Vorrei evitare che nella matrice finiscano celle vuote ...( come nel caso precedente del vettore v(a)= cells(i,C) : a=a+1 )
come posso modificare il codice sottostante al fine di evitare di riempire la matrice con valori vuoti.
Sub Matrice()
Dim Matrice(1 To 10, 1 To 10)
Dim R, C, Riga, Colonna
Dim Intervallo As Range
sheets("foglio1").select
For R = 1 To 10
For C = 1 To 10
Matrice(R, C) = cells(R,C)
Next
Next
Riga = UBound(Matrice, 1)
Colonna = UBound(Matrice, 2)
Sheets("Foglio1").Select
For R = 1 To Riga
For C = 1 To Colonna
Intervallo(R, C+6) = Matrice(R, C)
Next
Next
End Sub |
di Cucù data: 13/01/2016 14:59:34
Per esempio così...
Sub provola()
Dim arr(1 To 5)
arr(1) = "R"
arr(2) = ""
arr(3) = "A"
arr(4) = ""
arr(5) = "F"
ReDim NArr(LBound(arr) To UBound(arr))
For i = LBound(arr) To UBound(arr)
If arr(i) <> "" Then
j = j + 1
NArr(j) = arr(i)
End If
Next i
ReDim Preserve NArr(LBound(arr) To j)
Range("A1").Resize(j - LBound(NArr) + 1) = Application.Transpose(NArr)
End Sub |
di ornello (utente non iscritto) data: 13/01/2016 18:25:15
ciao penso di non aver spiegato bene il mio problema ..... o di non aver capito la macro che è stata postata in precedenza.
Il problema è che io ho una tabella contenente valori numerici e celle vuote . Vorrei caricarla la tabella in memoria in una matrice escludendo però le vuote.
per poi scaricarla nel foglio di lavoro depurata dalle celle vuote.
di Cucù data: 13/01/2016 21:04:19
Infatti l'esempio che ti ho postato fa proprio quello....
L'esempio riguarda una array monodimensionale (1 to 5) ma il concetto è quello....Il mio vuole essere uno spunto per risolvere in autonomia il tuo problema...
Cucù
di ornello (utente non iscritto) data: 14/01/2016 09:02:23
Ciao ho provato la macro funziona , ho fatto diversi tentativi ma il problema è che non riesco a capire come inserire il secondo ciclo for ed i relativi contatori per ripetere la stesse operazioni sulle altre colonne che mi interessano.
Potreste aiutarmi ad impostare il ciclo o darmi altri spunti mi sono bloccato
grazie
di ornello (utente non iscritto) data: 14/01/2016 22:03:18
Ciao,
sto cercando di adattare la macro postata nella discussione precedente al mio problema. Sulla singola colonna non ho problemi ma volendo ripetere la macro per le altre colonne non riesco a farla funzionare a dovere.
Ho impostato con dei cicli for next lo scorrimento delle colonne ma non riesco a separare correttamente i dati durante la fase di scarico dei valori sul foglio di lavoro. Posto il codice che ho adattato ma che non funziona coe dovrebbe
Qualcuno ha qualche suggerimento .......
Grazie
Sub tutto_in_colonna()
Dim v() As Variant, p As Long, a As Long, i As Long, j As Long, c As Long
ur = 100
a = 1
ReDim v(1 To ur)
For c = 1 To 3
For i = 1 To ur
If Cells(i, c) <> " " Then v(a) = Cells(i, c): a = a + 1
Next i
Next c
For p = 1 To 3
For j = 1 To ur
Cells(j, 6 + p) = v(j)
Next j
Next p
Erase v
End Sub
|
di ornello (utente non iscritto) data: 14/01/2016 22:42:23
Ciao penso di avere risolto posto il codice finale di esempio , chiedo un vs parere riguardo il codice elaborato.
Sub tutto_in_colonna()
Dim v() As Variant, q As Long, a As Long, i As Long, j As Long, c As Long
ur = 100
a = 1
ReDim v(1 To ur)
For c = 1 To 3
For i = 1 To ur
If Cells(i, c) <> "" Then v(a) = Cells(i, c): a = a + 1
Next i
For j = 1 To ur
Cells(j, 6 + c) = v(j)
Next j
For q = 1 To ur
v(q) = ""
Next q
a = 1
Next c
End Sub
|
Vuoi Approfondire?