Richard schrijft:
Als ik het zo vrijmoedig mag zijn om te vragen, zou ik u dankbaar zijn als u mij zou kunnen informeren over het antwoord op dit verwarrende raadsel over syntatische integriteitswraak:
Wanneer u verwijst naar een cel voor extern gebruik in VisualBasic, bijvoorbeeld via "Bereik (" F3 "). Selecteer" stel dat ik in plaats van kolom 1 een variabele wil vervangen van een lus naar het volgende einde:
For Scarab=3 To 15 Range("FScarab").Select ActiveCell.Value = Scarab * Scarab - 3 Next Scarab
bijvoorbeeld.
Het is duidelijk dat je FScarab niet zomaar kunt gebruiken waar je voorheen F3 zou hebben gehad, maar misschien is er een methode waarmee het gewenste resultaat kan worden bereikt. Dat wil zeggen, is er een manier om naar de cel in kolom F en rij Scarab te verwijzen voor de variabele Scarab en zo ja, zou je deze informatie kunnen onthullen.
Dit kan op verschillende manieren. Waarschijnlijk de meest intuïtieve is deze methode waarbij de kolomletter "F" wordt samengevoegd met het numerieke rijnummer binnen de Range () -referentie.
For Scarab=3 To 15 Range("F" & Scarab).Select ActiveCell.Value = Scarab * Scarab - 3 Next Scarab
De volgende methode gebruikt de functie CELLEN (rij, kolom) in plaats van de bereikverwijzing. In dit geval moeten rij en kolom numeriek zijn. Je rijnummervariabele is al numeriek, dus je hoeft alleen maar de "F" om te rekenen naar een 6 in je hoofd. U zult ook opmerken dat het niet nodig is om de cel te selecteren, u kunt er eenvoudig een waarde aan toewijzen.
For Scarab=3 To 15 Cells(Scarab, 6).Value = Scarab * Scarab - 3 Next Scarab
Ten slotte is het mogelijk om eenvoudig door elke cel in het bereik te lussen:
For Each cell in Range("F3:F15") Cell.Value = Cell.Row * Cell.Row - 3 Next Cell