Salve a tutti.
Esiste una funzione che restituisca l'ultimo elemento avvalorato di un array di interi (senza dover eseguire un ciclo for) ?
Dato arr_int(10) avvalorato tutto a ZERO se arr_int(1) = 3, arr_int(2) = 5 dovrei ottenere "3"
Grazie
Moderatori: Anthony47, Flash30005
Marius44 ha scritto:Ciao
sto seguendo molto attentamente lo sviluppo del tuo lavoro ma la domanda che poni mi mette fuori strada.
Che io sappia la funzione che chiedi non esiste.
Nella tua domanda chiedi "l'ultimo elemento avvalorato" ma nell'esempio la tua risposta è, chiamiamolo così, il primo (cioè 3, quello di posizione inferiore) mentre per la sequenza l'ultimo dovrebbe essere il 5.
Poichè ritengo che la domanda faccia riferimento ad array (orizzontali o verticali per lo schema) forse ti basterebbe sapere se l'indice di quell'array è avvalorato oppure no.
Oppure non mi è chiaro il problema.
Ciao,
Mario
trov =0
for x = 1 to ubound(arr_int)
if x = 0 then
trov = x
exit for
endif
next x
Dim arr_int(0 to 10) as Long
arr_int(arr_int(0)+1)=ValoreDelNuovoElemento
arr_int(0)=arr_int(0)+1
karug64 ha scritto:Dato arr_int(10) avvalorato tutto a ZERO se arr_int(1) = 3, arr_int(2) = 5 dovrei ottenere "3"
Sub prova()
Dim arr_int(10)
arr_int(1) = 3
arr_int(2) = 5
arr_int(3) = 2
arr_int(5) = 9
Debug.Print Application.WorksheetFunction.Match(9 ^ 9, arr_int)
End Sub
karug64 ha scritto:
Dato arr_int(10) avvalorato tutto a ZERO se arr_int(1) = 3, arr_int(2) = 5 dovrei ottenere "3"
Sub prova2()
Dim arr_int(1 To 10) As Long, nIndx As Long
arr_int(1) = 3
arr_int(2) = 5
arr_int(3) = 2
arr_int(4) = 0
Application.ScreenUpdating = False
Range("AZ1:AZ10") = Application.Transpose(arr_int)
nIndx = Evaluate("=MATCH(9^9,IFERROR((AZ1:AZ10)^0,""""))")
Range("AZ1:AZ10").Clear
Application.ScreenUpdating = True
MsgBox "l'ultimo elemento valorizzato di arr_int è il " & nIndx & "°" 'nell'esempio 3°
End Sub
pepp = Application.Match(9 ^ 9, myArr)
If IsError(pepp) Then pepp = 1
Anthony47 ha scritto:Ma Match puo' essere usato gia' sull'array, se l'Array viene dichiarato Variant ....
- Codice: Seleziona tutto
pepp = Application.Match(9 ^ 9, myArr)
....
scossa ha scritto:
- Codice: Seleziona tutto
Debug.Print Application.WorksheetFunction.Match(9 ^ 9, arr_int)
Anthony47 ha scritto:L'uso di Confronta /Match e' limitato a max 64000 voci (limite delle WorksheetFunctions).
Anthony47 ha scritto:Tuttavia con quella formulazione avrai un run_time error quando l Array è vuoto ....
Anthony47 ha scritto:Eh, karug non me ne vorra' ma credo che col suo progetto del "genera cruciverba" sia in mezzo al guano
Torna a Applicazioni Office Windows
Excel: formula automatica per evidenziare prodotto scaduto Autore: gamma_ray |
Forum: Applicazioni Office Windows Risposte: 3 |
Salvare file excel in formato html escludendo le immagini Autore: systemcrack |
Forum: Applicazioni Office Windows Risposte: 5 |
formula excel non visualizza risultato Autore: tommasog |
Forum: Applicazioni Office Windows Risposte: 6 |
Excel 2016 - Funzione SCARTO + INDIRETTO Autore: pl1957 |
Forum: Applicazioni Office Windows Risposte: 2 |
Visitano il forum: Nessuno e 31 ospiti