Matrici e celle in vba

Anonimo
2010-11-25T16:54:10+00:00

E' possibile ottenere una matrice che al suo interno abbia i valori delle celle A1:B5?

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2010-11-25T17:28:26+00:00

E se volessi fare il contrario? Mettere il contenuto di una matrice nelle celle A1:B5?

Prova così:

Public Sub m()

    Dim v() As Variant

    Dim rng As Range

    Dim sh As Worksheet

    Dim lCol As Long

    Dim lRiga As Long

    Set sh = ThisWorkbook.Worksheets("Foglio1")

    Set rng = sh.Range("A1:B5")

    'gli Array(matrici) sono in base 0

    ReDim v(4, 1)

    For lCol = 0 To 1

        For lRiga = 0 To 4

            v(lRiga, lCol) = "R" & lRiga + 1 & "C" & lCol + 1

        Next

    Next

    rng = v

    Set rng = Nothing

    Set sh = Nothing

End Sub

Gli Array(matrici) hanno base 0, cioè il primo valore è il valore 0.  Fai sapere e grazie per l'attenzione.


--

La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare la soluzione in files importanti.

--

Mauro Gamberini - Microsoft© MVP(Excel)

http://www.maurogsc.eu/

La risposta è stata utile?

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2010-11-25T17:03:41+00:00

E' possibile ottenere una matrice che al suo interno abbia i valori delle celle A1:B5?

Prova:

Public Sub m()

    Dim v As Variant

    Dim rng As Range

    Dim sh As Worksheet

    Set sh = ThisWorkbook.Worksheets("Foglio1")

    Set rng = sh.Range("A1:B5")

    v = rng

    MsgBox v(2, 1) '<<=== Test

    Set rng = Nothing

    Set sh = Nothing

End Sub

Fai sapere, grazie.


--

La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare la soluzione in files importanti.

--

Mauro Gamberini - Microsoft© MVP(Excel)

http://www.maurogsc.eu/

La risposta è stata utile?

0 commenti Nessun commento

4 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2010-11-25T17:49:04+00:00

    Le celle e le matrici devono essere uguali?

    Non ho capito quel *ugali*. Le *dimensioni* dovrebbero essere le stesse. Comunque puoi recuperare un dato specifico della matrice e metterlo in una cella o in un range di celle. Prova:

    Public Sub m()

        Dim v() As Variant

        Dim sh As Worksheet

        Dim lCol As Long

        Dim lRiga As Long

        Set sh = ThisWorkbook.Worksheets("Foglio1")

        'gli Array(matrici) sono in base 0

        ReDim v(4, 1)

        For lCol = 0 To 1

            For lRiga = 0 To 4

                v(lRiga, lCol) = "R" & lRiga + 1 & "C" & lCol + 1

            Next

        Next

        sh.Range("A10").Value = v(3, 1)

        Set sh = Nothing

    End Sub

    e:

    Public Sub m()

        Dim v() As Variant

        Dim rng As Range

        Dim sh As Worksheet

        Dim lCol As Long

        Dim lRiga As Long

        Set sh = ThisWorkbook.Worksheets("Foglio1")

        Set rng = sh.Range("A1:B5")

        'gli Array(matrici) sono in base 0

        ReDim v(4, 1)

        For lCol = 0 To 1

            For lRiga = 0 To 4

                v(lRiga, lCol) = "R" & lRiga + 1 & "C" & lCol + 1

            Next

        Next

        rng = v(3, 1)

        Set rng = Nothing

        Set sh = Nothing

    End Sub

    Le due routine fanno cose ben diverse come puoi vedere, diverse anche da ciò che ottieni con la routine postata in precedenza. Ma forse non ho capito.


    --

    La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare la soluzione in files importanti.

    --

    Mauro Gamberini - Microsoft© MVP(Excel)

    http://www.maurogsc.eu/

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2010-11-25T17:40:11+00:00

    Le celle e le matrici devono essere uguali?

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2010-11-25T17:18:27+00:00

    E se volessi fare il contrario? Mettere il contenuto di una matrice nelle celle A1:B5?

    La risposta è stata utile?

    0 commenti Nessun commento