Opgelost range vullen met arrayformule

Dit topic is als opgelost gemarkeerd

snb

Verenigingslid
Lid geworden
12 jun 2008
Berichten
20.508
Als ik [A1:C3] wil vullen met een Arrayformule doe ik dat handmatig met:

PHP:
{={1\2\3;4\5\6;7\8\9}}
(want afgelsoten met ctrl-shft-enter)

Als ik datzelfde wil doen met VBA lukt mij dat niet met de regel:

PHP:
[A1:C3].formulaArray= "={={1\2\3;4\5\6;7\8\9}"

Hoe zou dat dan wel moeten ?
 
Wellicht zonder de accolades:
Code:
Range("A1:C3").FormulaArray ="=1\2\3;4\5\6;7\8\9"
 
De 'Runtime Error 1004' blijft identiek.
Als je een range in een benoemd gebied opslaat heeft die ook de vorm "={1\2\3;4\5\6;7\8\9}"

Code:
ReDim sp(2, 2)
   
 For j = 0 To 8
     sp(j \ 3, j Mod 3) = j + 1
 Next
   
 Sheet1.Names.Add "snb", sp
 MsgBox Sheet1.Names(1)
 
Laatst bewerkt:
Dan zo:
Code:
Range("A1:C3").FormulaArray = "=""1\2\3;4\5\6;7\8\9"""
 
Nu lukt het ineens wel met:

Code:
Sub M_snb()
  ReDim sp(2, 2)
    
  For j = 0 To 8
    sp(j \ 3, j Mod 3) = j + 1
  Next
    
  Sheet1.Names.Add "snb", sp
  MsgBox Sheet1.Names(1)
    
  [A5:C7].FormulaArray = Sheet1.Names(1)
End Sub
 
Ok, zo dus:
Code:
Range("A1:C3").FormulaArray = "={1,2,3;4,5,6;7,8,9}"
 
Of:
Code:
Range("A1").Formula2 = "={1,2,3;4,5,6;7,8,9}"
Of:
Code:
Range("A1").Formula2Local = "={1\2\3;4\5\6;7\8\9}"
 
En nu de volgende complicatie: 1 of meer 'cellen' van de array zijn leeg.
 
Levert hier (Office 2021) netjes een lege cel op.
 
Een echt lege cel "maken" met een matrix is onmogelijk, alle elementen moeten iets bevatten. En een lege string betekent toch dat de cel door Excel niet als zijnde leeg beschouwd wordt.
 
B1 is bij mij niet leeg.
=ISLEEG(B1) = ONWAAR
 
En zowel jkpieterse als HSV snappen natuurlijk dat ik met leeg bedoelde dat de door @snb genoemde " bij mij niet in de cel verscheen.;)
 
Bovendien...
En nu de volgende complicatie: 1 of meer 'cellen' van de array zijn leeg.
Is er iemand die dit leest alsof TS lege cellen op zijn werkblad als resultaat wil zien?

@snb,
Als #9 bij jou niet werkt, laat dat dan eens in een bestand zien.
 
Terug
Bovenaan Onderaan