根据指定范围的用户定义变量,使用另一张表上的数据填充一张表上的单元格

根据指定范围的用户定义变量,使用另一张表上的数据填充一张表上的单元格

我正在尝试为太阳能装置构建一个检查报告模板,对复杂的 Excel 使用有些陌生(对 VBA 也很陌生),但对编程非常熟悉,而且学习速度很快!

理想情况下,用户将输入安装时逆变器的数量(目前最多 12 个),模板将填充适当数量的预制清单,每个清单项都有一个下拉的好/坏列表,每个逆变器 1 个,按连续顺序编号(逆变器#1,逆变器#2,等等)。

在工作簿中,我有一个名为“报告”的主表,一个名为“填充数据”的第二个表,以及一个名为“按钮和列表”的第三张表。

在“报告”中,单元格 A7 是“现场逆变器总数”,其中输入进入单元格 D7,单元格数量从 A9 开始。

在“填充数据”中,A4:X15 中有一个数据范围,即 12 个检查表(A4:B15 是逆变器 #1,C4:D15 是逆变器 #2,等等)。在此范围内,每个检查表的第二列都有下拉列表,每个项目都有“空/好/坏”选项,这些选项来自“按钮和列表”!$A$2:$A$4 中的列表。

部分“填充数据”屏幕截图

我尝试了一个非常长的 IF 公式: =IF(D7=1,'填充数据'!A4:B15,IF(D7=2,'填充数据'!A4:D15,IF(D7=3,'填充数据'!A4:F15,IF(D7=4,'填充数据'!A4:H15,IF(D7=5,'填充数据'!A4:J15,IF(D7=6,'填充数据'!A4:L15,IF(D7=7,'填充数据'!A4:N15,IF(D7=8,'填充数据'!A4:P15,IF(D7=9,'填充数据'!A4:R15,IF(D=10,'填充数据'!A4:T15,IF(D7=11,'填充数据'!A4:V15,'填充数据'!A4:X15))))))))))))

这部分完成了工作,但“空/好/坏”下拉列表的功能无法实现(仅显示当前选择),并且如果用户输入 12,它就会中断。目前,逆变器的数量停止在 12,但我很想构建一个开放式模板,可以根据需要填充尽可能多的清单。

输入 12 的“报告”截图

输入 3 的“报告”截图

我怀疑 VBA 脚本可能是实现此目的的最佳方法,但不知道如何让它查看 D7 并相应地调整复制和粘贴,或者复制 1 个清单并在执行适当数量的多次粘贴时更改逆变器编号。

IF 函数和 VBA 之间可能还存在一种更简单的方法,但我对此一无所知。我并不是在寻找完整的脚本或公式,只是希望获得有关如何开发它的指导。

答案1

在 Super User 上过了一天都没有回复后,我在 Microsoft 上提出了同样的问题。可能应该先去那里。我把这个分享给下一个可能有这个问题的人。

解决我的问题的 VBA 脚本

我在这里看到的只是一些观点、一些感觉过于挑剔且没有特别帮助的编辑、一个被否决的问题和一个看似合理但完全不符合我想要的项目方向的“答案”。第一次体验不太好。

相关内容