Excel VBA按A列匹配值填充D列动态数据空白单元格的宏编写问题
Excel VBA按A列维度填充D列空白单元格
业务规则
- 工作表设置A、B、C、D共4个列标题,需实现动态数据自动化填充
- D列非空单元格为随机分布状态,D列空白单元格的填充依据为:匹配同一A列维度对应的D列非空值,而非机械沿用紧邻上一行的单元格值
现有实现缺陷
用户自主编写的填充宏,仅可将D列空白单元格填充为紧邻上一行的D列值,未关联A列的维度匹配逻辑,无法输出正确结果。
现有宏代码
Sub FillblankCells() lr = Cells.Find("*", Cells(1, 1), xlFormulas, xlPart, xlByRows, xlPrevious, False).Row With Range("D2:D" & lr) .SpecialCells(xlBlanks).FormulaR1C1 = "=R[-1]C" .Value = .Value End With End Sub
正确实现的技术方向
- 构建A列维度与对应D列非空值的映射关系,遍历全表收集同一A列下存在的有效D列值
- 逐行遍历数据区域,判断D列单元格状态:若为空白则直接匹配对应A列维度的预存值完成填充,不依赖相邻行的数值引用
内容的提问来源于stack exchange,提问作者manjeet singh
相关产品推荐
相关产品推荐

