For loop integer in formule plaatsen.

Status
Niet open voor verdere reacties.

Finx

Gebruiker
Lid geworden
7 feb 2020
Berichten
8
Hallo, ik heb hier deze formule:

Code:
Sub ShowSamenEnAcc()
    Columns("G").Hidden = False
    Columns("H").Hidden = False
    
    For i = 21 To 46
        Range("G" & i).Value = "=@cockpitcheck('$G$20;E' & i & ';F' & i)"
        Range("H" & i).Value = "=@cockpitcheck('$H$20;E' & i & ';F' & i)"
    Next i
    
End Sub
Wat ik wil doen is het getal invullen dat met de for loop wordt gegenereerd. Hiervoor wilde ik escaping toepassen maar dit leidt constant tot errors. Kan iemand mij vertellen wat er mist, en/of hoe ik dit kan verhelpen?

(de waardes zelf registreren trouwens wel, het gaat puur om het verwerken in de string)
 
Denk je niet dat het handig is om dan ook de foutmelding er bij te vertellen?
 
Foutmelding

Of het veel helpt weet ik niet, maar hier is de melding die ik krijg:
Knipsel.PNG
 
Resultaat

In zekere zin werkt het, het eh... ziet er alleen nu zo uit: (overigens geen foutmeldingen dit keer!)

=@cockpitcheck("$G$20;E" &@ i & ";F" &@ i)

Dat kan niet de bedoeling zijn dus ik vraag me af wat er dan misschien (nog meer) aan de hand is.
 
Ik had m'n bericht net weer verwijderd omdat deze niet goed was.
Je was iets sneller dan ik ;)
 
Maak er dit van:
Code:
Sub ShowSamenEnAcc()
    Columns("G").Hidden = False
    Columns("H").Hidden = False
    
    For i = 21 To 46
        Range("G" & i).Formula = "=@cockpitcheck($G$20,E" & i & ",F" & i & ")"
        Range("G" & i).Formula = "=@cockpitcheck($H$20,E" & i & ",F" & i & ")"
    Next i
End Sub
 
Opgelost!

Dankjewel, dit heeft het probleem opgelost! Escaping in VBA lijkt haast wel een vak apart.
 
Wat bedoel je met escaping?
 
Escaping in dit geval betekent het implementeren van getallen in strings, doordat dit in elke programmeertaal kan verschillen is het soms de vraag hoe je het in een specifiek programma (zoals VBA in dit geval) zou aanpakken. C# bijvoorbeeld heeft een automatische functie om getallen naar stringformat om te zetten, VBA heeft dit niet dus moet je handmatig de strings beëindigen, het getal koppelen aan de string (concat) enzovoort.
 
Het is gewoon het opbouwen van een string dus :)
Zoals ik het liet zien is een stuk eenvoudiger dan wat je gedaan had.
 
Gebruik VBA in VBA, geen Excelformules.

Blijkbaar ben je niet bekend met x3=format(12)

PHP:
Sub M_snb()
    Columns("G:H").Hidden=false
    sn=range("E20:H41")

    for j=2 to ubound(sn)
       sn(j,3)=sn(1,3) & sn(j,1) & sn(j,2)
       sn(j,4)=sn(1,4) & sn(j,1) & sn(j,2)
    next

    range("E20:H41")=sn
end sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan