VBA循环生成的变量无法显示到Excel单元格的问题咨询
VBA写入Excel不显示的问题修复
核心问题分析
你的代码里存在重复赋值覆盖的错误:连续两次对第5列单元格赋值,先写入DeltaX * i,紧接着又用yi覆盖了这个值,导致X轴数据丢失;同时Range(Cells(i,5))这种写法冗余且容易引发引用错误。
修正后的代码
For i = 1 To iT yi = Y0 + DeltaX * dydx(b, m, n, u, Y0, Z0) zi = Z0 + DeltaX * dzdx(a, p, q, Y0, Z0) ' 直接用Cells指定行列赋值,拆分X轴数据和yi到不同列 Cells(i, 4).Value = DeltaX * i ' X轴数值放到第4列 Cells(i, 5).Value = yi ' yi放到第5列 Cells(i, 6).Value = zi ' zi放到第6列 Y0 = yi Z0 = zi Next i
额外排查要点
- 确认
iT是大于0的整数,否则循环不会执行 - 检查
dydx、dzdx函数是否返回有效数值,可在循环内添加Debug.Print yi, zi,打开VBA编辑器的「立即窗口」查看计算结果 - 如果目标工作表处于保护状态,需先解除保护再写入数据
- 明确指定操作的工作表,比如
ThisWorkbook.Sheets("你的工作表名").Cells(i,4).Value,避免数据写到其他工作表中 - 若之前关闭了屏幕更新,可在代码开头添加
Application.ScreenUpdating = True
内容的提问来源于stack exchange,提问作者Kevin Angel Fitzgerald Gomez
相关产品推荐
相关产品推荐

