Single Array() naar range -methode-

Status
Niet open voor verdere reacties.

Interface

Gebruiker
Lid geworden
27 jan 2009
Berichten
156
Hi,

Niet blocking want er zijn giga veel work arrounds, maar ik vroeg me af of er een methode is om een single param array() in 1 keer op een werksheet te plakken. Normaliter doe ik dit met een multi dimensionale array en dit gaat prima met een resize.
Tuurlijk kan ik een loop gebruiken maar vroeg mij af of er een simple methode te doen met een "oneliner". Ook kan ik van de loop een "oneliner" maken met dubbele punt maar dat was nu niet echt de bedoeling. Misschien dat het gewoon niet kan met die methode maar dan is dat ook een antwoord.

Als voorbeeld:

Code:
Sub Interface()

arr = Array(Null, 123, 123, 123, 123, Null, Null)

'werkt allemaal niet:

Sheet1.Range("b2").Resize(UBound(arr)) = Application.Transpose(arr)
Sheet1.Range("b2").Resize(UBound(arr), 1) = Application.Transpose(arr)
Sheet1.Range("b2:b" & 2 + UBound(arr) + 1) = Application.Transpose(arr)
' etc., etc. ,etc.

End Sub

'dit werkt dan weer wel.

Sub InterfaceLoop()

arr = Array(Null, 123, 123, 123, 123, Null, Null)

For i = 0 To UBound(arr): Sheet1.Range("b" & i + 1) = arr(i): Next i

End Sub
 
Bedoel je dit?
Code:
Range("B1:G1") = arr
 
yes zoiets, maar....

Dit moet dan transposed worden, zodra ik die toevoeg krijg ik een error: 13 Mismatch

dit had ik ook in het voorbeeld toegevoegd overigens:

Code:
Sheet1.Range("b2:b" & 2 + UBound(arr) + 1) = Application.Transpose(arr)
 
Laat eens in een documentje zien wat je als resultaat verwacht.
 
here you go

Bijgevoegd, de vba heb ik toegevoegd zoals in het eerste voorbeeld.
 

Bijlagen

  • interface_array_parse_to_worksheet.xlsm
    15 KB · Weergaven: 11
Ik denk dat die Null waarden roet in het eten gooien.
Dit doet het bij mij goed:
Code:
arr = Array("", "", 123, 123, 123, 123, "", "", 123)
Range("B2:B" & UBound(arr) + 2) = Application.Transpose(arr)
 
Deze regel zo ipv met "Null"

Edit: Ed was me net voor zie ik:)

Code:
arr = Array("", "", 123, 123, 123, 123, "", "", 123)
 
There you are:

Code:
Sub M_snb()
  sn = Array("", "", 123, 123, 123, 123, "", "", 123)

  Cells(2, 2).Resize(UBound(sn) + 1) = Application.Transpose(sn)
End Sub

Or
Code:
Sub M_snb()
  sn = Array(vbNull, vbNull, 123, 123, 123, 123, vbNull, vbNull, 123)

  Cells(2, 2).Resize(UBound(sn) + 1) = Application.Transpose(sn)
End Sub

SO: Null <> vbNull

Code:
  MsgBox VarType(Null) & vbTab & TypeName(Null)
  MsgBox VarType(vbNull) & vbTab & TypeName(vbNull)



 
Laatst bewerkt:
Thanks voor alle antwoorden, aangezien ik NULL waarde terug krijg van een query zal ik de NULL moeten vervangen schat ik zo.

Ik zal de vraag op opgelost zetten.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan