Instead of setting row and column sizes (which doesn't translate 100% to hex grids), treat all cells individually. Cells would be stored simply as a point representing their center, and borders would be drawn between those points.
The only constraint would be that an individual point could not be moved outside the hexagon formed by its neighboring six points (i.e. the neighboring centers).
A cell could be scaled individually be moving it's neighboring points uniformly outward or inward.
Fuzzy/magnet movements could be used, so that changes propagated outwards to a certain (adjustable) influence.
Rows, ranges, and arbitrary selections could all be adjusted the same way.
The grid would remain topologically the same, and therefore logically the same.
Instead of setting row and column sizes (which doesn't translate 100% to hex grids), treat all cells individually. Cells would be stored simply as a point representing their center, and borders would be drawn between those points.
The grid would remain topologically the same, and therefore logically the same.