Hallo,
Onlangs wilde ik, om snelheidsredenen, een Range onderbrengen in een array. Dat had ik ooit nog eens gedaan, dus even het vroegere bestand opgezocht en onderstaande code teruggevonden die foutloos werkt:
Bij nader toezien dacht ik dat het korter kon, door de variabele "oSh" weg te laten wat onderstaande code oplevert. Dit werkt echter niet. Er volgt een runtime error 13 - Type mismatch.
Na een beetje trial and error kwam ik uit bij onderstaande code die dan weer wel werkt:
Wat ik niet begrijp is dat het weglaten van het punt "." in ".Range(....." het verschil maakt.
Kan iemand mij daar een beter inzicht in bijbrengen ?
Grtz,
MDN111.
Onlangs wilde ik, om snelheidsredenen, een Range onderbrengen in een array. Dat had ik ooit nog eens gedaan, dus even het vroegere bestand opgezocht en onderstaande code teruggevonden die foutloos werkt:
Code:
Dim myArray() As Variant, oSh As Worksheet
Set oSh = ThisWorkbook.Sheets("A")
With oSh
myArray() = .Range(.Cells(3, 1), .Cells(100, 4))
End With
Bij nader toezien dacht ik dat het korter kon, door de variabele "oSh" weg te laten wat onderstaande code oplevert. Dit werkt echter niet. Er volgt een runtime error 13 - Type mismatch.
Code:
Dim myArray() As Variant
With ThisWorkbook.Sheets("A")
myArray() = [B][COLOR="#FF0000"].[/COLOR][/B]Range(.Cells(3, 1), .Cells(100, 4)) 'Dit werkt niet (???)
End With
Na een beetje trial and error kwam ik uit bij onderstaande code die dan weer wel werkt:
Code:
Dim myArray() As Variant
With ThisWorkbook.Sheets("A")
myArray() = Range(.Cells(3, 1), .Cells(100, 4))
End With
Wat ik niet begrijp is dat het weglaten van het punt "." in ".Range(....." het verschil maakt.
Kan iemand mij daar een beter inzicht in bijbrengen ?
Grtz,
MDN111.