Ha csak egy darab összefüggő tartományra szeretnénk a képleteket értékükkel helyettesíteni, akkor azt viszonylag gyorsan meg tudjuk csinálni az EXCEL által adott speciális beillesztési lehetőséggel.
De mi van akkor, ha egy munkalapon az összes képletet ki szeretnénk cserélni értékre? Hagyományos módszerrel egyenként kell megcsinálni. De ha az alábbi kis kódot elraktározzuk magunknak pl. a PERSONAL makrófüzetbe, akkor bármelyik dokumentumunknál nagyon gyorsan megtehetjük a cserét.
Háttér
Az Excel a speciális kijelölések segítségével megadja a módját, hogy az összes, képletet tartalmazó cellát egy lépésben kijelöljük. Ezt az Excel felületen így kell:
- F5
- Special… (Irányított…) gomb
- Képletek
Ugyanezt VBA kóddal
Selection.SpecialCells(xlCellTypeFormulas, 23).Select
Képletek cseréje nem összefüggő tartományoknál
Nagyon valószínű, hogy nem csak egy tartományban lesznek képletek. Így több, nem összefüggő tartományt jelöl ki az Excel. Ezekre viszont NEM LEHET értéket beilleszteni az Excel felületről.
Megoldás
A nem összefüggő tartományokat egy VBA ciklusban bejárva, egyesével cseréljük ki bennük a képleteket értékre.
A nem összefüggő tartományok bejárásának leírását lásd itt.
[vb]‘Képletek értékké alakítása nem összefüggő tartományokban is
Sub Formula2Value()
Dim r As Range
‘Képleteket tartalmazó cellák(tartományok) kijelölése
Selection.SpecialCells(xlCellTypeFormulas, 23).Select
‘A keletkezett tartományok (areas) bejárása
For Each r In Selection.Areas
r.Select
Selection.Formula = Selection.Value
Next
End Sub
[/vb]
Vélemény, hozzászólás?
Hozzászólás küldéséhez be kell jelentkezni.