Если у ваших стоек максимальное число ячеек конечное в любой конфигурации, вы можете рассмотреть это решение:
Допустим, что в любой вашей стойке содержится не более R блоков
- создайте форму F
- откройте F и добавьте в нее R текстовых полей B (они ни с чем не связаны)
- сохраните форму
- сейчас в VBA при загрузке стойки вы можете выполнять итерации для каждого блока и использовать некоторый код, чтобы расположить каждый из них в форме, показать или скрыть его и, наконец, установить его размер!
В основном вы ' Вы добавили в форму больше блоков, чем обычно требовалось бы для обычной конфигурации стойки, и, тем самым, вы можете скрыть некоторые из них, когда они не нужны. У вас есть это ограничение, потому что вы не можете создавать и добавлять во время выполнения новые текстовые поля в форму в VBA (это должно работать и для отчетов).
Обратите внимание, что вы можете использовать и другие типы объектов, текстовые поля полезны если вы хотите отредактировать текст внутри них, в противном случае вы можете использовать метку или что-нибудь, что больше всего соответствует вашим потребностям (например, поле со списком ...).
Базовые c методы, которые вам могут понадобиться чтобы посмотреть:
cell1.Height = 100
cell1.Visible = Not cell1.Visible
cell1.Move Left:=0, Top:=0, Width:=400, Height:=3000
В любом случае, если вы получите более подробную информацию, приведя несколько примеров ваших стоек, мы сможем предложить более подробное решение.