MID è Worksheet Function ed è anche, in VBA,
Function (ritorna un valore) e Statement (read/write).
La sintassi è la stessa.
Bruno (i4CZS)
Grazie Bruno, [ot] anche tu radioamatore?
intendevo chiedere la differenza, ma sempre in VBA (non parlavo di di
Worksheet Function) tra mid e VBA.mid che ho trovato in un listato di
programma
Grazie a tutti e Ciao
Roberto (IW1ERL)
Nel caso della funzione Mid, non credo che ci sia
una differenza tra l'uso con o senza il riferimento alla
libreria VBA (la cosisdetta 'type library').
Comunque, puo' essere molto utile di utilizzare un
riferimento esplicito al type library.
Ad esempio, alla testa di un modulo standard, e prima
di qualsiasi codice, prova:
Option Base 1
'=============>>
Public Sub Tester()
Dim Arr As Variant
Dim Arr2 As Variant
Arr = VBA.Array("Pippo", "Pluto", "Paperino")
Arr2 = Array("Pippo", "Pluto", "Paperino")
MsgBox "Arr(1) = " & Arr(1) _
& vbNewLine & vbNewLine & _
"Arr2(1) = " & Arr2(1), _
Buttons:=vbInformation, _
Title:="DEMO"
End Sub
'<<=============
Ora riprova la procedura ma cancella la dichiarazione:
Option Base 1
Vedrai che nel primo caso, i risultati sarebbero
Pluto e Pippo; nel secondo caso i risultati
sarebbero Pluto e Pluto.
Quindi, per una soluzione piu' robusta, sarebbe
consigliabile di utilizzare sempre VBA.Array. In
questo modo, i risultati sarebbero independenti
dagli settagi dell'utente.
Comunque, ripeto, AFAIK (per quel che ne so
io), nel caso della funzione Mid, non credo che
ci sia una differenza.
---
Regards,
Norman
Microsoft Excel MVP
"IW1ERL" ha scritto:
Ciao Roberto, ciao Bruno, ciao Norman.
Potresti essere così gentile da postare quel "listato del programma", sempre
che non sia qualcosa di mostruoso a livello dimensionale ?
Grazie
Eliano (I5API) (API = Associazione Pirati Italiani) :-8)
Quello che mi ha incuriosito faceva parte di un progetto (tedesco)
molto complesso ma posso postare la piccola procedura che includeva il
VBA.mid.
Eccola:
Public Function GetJahr() As String
Dim jahr As String
Dim monat As String
Dim tag As String
Dim datum As String
datum = Date
If VBA.InStr(datum, "/") > 0 Then
monat = VBA.Mid(datum, 1, VBA.InStr(datum, "/") - 1)
datum = VBA.Mid(datum, VBA.InStr(datum, "/") + 1)
tag = VBA.Mid(datum, 1, VBA.InStr(datum, "/") - 1)
jahr = VBA.Mid(datum, VBA.InStr(datum, "/") + 1)
Else
jahr = VBA.Mid(datum, 7)
End If
GetJahr = jahr
End Function
Non chiedetemi a cosa serve :-)
Roberto (IW1ERL)
"IW1ERL" ha scritto:
Ciao Roberto.
Scusa ma mi vien che ridere.:-))
Forse dipende dalle mie scarse conoscenze del Vba, ma quella funzione serve
solo per sapere in che anno ci troviamo.
Prova a copiare quella funzione in un modulo e quindi scrivi, ad esempio, in
A1 la formula: =GetJahr() e vedrai apparire nella cella 2007.
Scusa il tono scherzoso e buon appetito a tutti.
Eliano
[...]
> Eliano (I5API) (API = Associazione Pirati Italiani) :-8)
Quant'è la quota?
Voglio iscrivermi anch'io...
Bruno
"Bruno Campanini" ha scritto:
Ciao Bruno.
Si tratta di una associazione assolutamente virtuale, per la quale non
esiste nè quota, nè elenco di aderenti, nè sede principale, nè struttura
piramidale; è formata da appassionati che tendono a comportarsi correttamente
in frequenza, riuscendo a raggiungere risultati identici o addirittura
superiori a quelli che possono ottenere radioamatori dotati di attrezzature
strepitose e di regolare licenza.
l'API (associazione pirati italiani) è una associazione caratterizzata da
libertà e da correttezza estrema ed è diversa dall'ARI (associazione
rompiscatole italiani che poi sarebbe una associazione di radioamatori
legalmente riconosciuta che tu dovresti ben conoscere, dato che mi pare di
capire che non ne fai parte [:-8)]), formata da veri amatori, da tecnici
autocostruttori di apparati e di antenne, il che oggi presuppone conoscenze
tecniche notevoli.
Incidentalmente la storia ci dice che quando Marconi effettuò il primo
collegamento internazionale c'erano per lo meno altri DUE aderenti all'API in
frequenza, risultati ovviamente sconosciuti; entrambi riuscirono a farsi
ascoltare Oltreoceano. Questo ovviamente senza nulla togliere al nostro
Grande Guglielmo, al quale il mondo moderno deve moltissimo.
Per la quota comunque, segui il principio funebre: Non fiori ma opere di
bene. HI come dicono in 27.
Cordialissimamente
Eliano
Ok, tutto chiaro.
Pensavo si trattasse di un'API relativa al software...
Mi sarei candidato per una carica...
Ciao
Bruno