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] controllo corrispondenza tra valori con un vincolo Autore: sbs |
Forum: Applicazioni Office Windows Risposte: 9 |
Come impostare il formato data predefinito in excel? Autore: wallace&gromit |
Forum: Applicazioni Office Windows Risposte: 5 |
Creare un file Excel con fogli visibili in base all'accesso Autore: JanVathek |
Forum: Applicazioni Office Windows Risposte: 28 |
Visitano il forum: Nessuno e 20 ospiti