【发布时间】:2017-12-14 19:16:26
【问题描述】:
我有一个用于输入数据的表单。
我需要通过 VBA 代码在 Excel 中“添加”一行并保留我的lRow。
我希望将添加行保留在工作表底部,但我有一个引用单元格的公式,如果我添加到它,公式将返回错误数据。
我需要添加一行并保留lrow,或者在将行添加到末尾时更改公式。
我在数据表末尾添加的行是:
lRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1
我的公式行是
.Cells(lRow, 21).Value = "=IF(A2<"" "",A2&TEXT(D2,""mmddyy""),"""")"
当我添加数据时,公式由于其静态而返回错误数据,并且添加的行不再引用A2,而是引用B2 ...等等。
如何在我的代码中添加一行并保持lRow 正常工作,或者如何在我添加新行时使公式正常工作,它索引到下一行而不是静态的?
谢谢
【问题讨论】:
-
添加新行时为什么会引用 B2?你的意思是一个新的专栏?仅用这两个小sn-ps 代码尚不清楚您要在这里做什么。我也相信,你可能想要
.formula而不是.value作为单元格范围。 -
不,我正在添加新行。需要添加行只是因为这是原始工作表的设置方式。就引用 B2 而言,我需要否则 VBA 代码现在是静态的,并且将始终引用不正确的 A2,如果我现在附加它,它需要随着新行的添加而移动,否则我需要插入新行并将旧行向下移动 1 行,但保留 lRow 描述。