VBA向表格最后一行插入数据却偏移4行的问题求助
解决Excel VBA插入数据位置错误的问题
嘿,我一眼就瞅出问题出在哪啦!你想在表格最后一行插入新数据,结果跑到第4行之后去了,根源就在你查找最后一行的逻辑上。
原代码的问题
你用Range("A1:Q1").End(xlUp).Row来获取最后一行的行号——这操作是从第一行的A1到Q1单元格向上查找,可第一行已经是表格最顶部了,所以得到的DernLigne永远是1。接着你写Range("A1" & DernLigne),就变成了A11(把"A1"和1拼接起来),如果你的表格刚好有4行数据,那A11自然就在第4行之后啦!
修正后的代码
要正确定位到有数据的最后一行,得从列的最底部往上查找。这里以A列为基准(假设A列每行都有数据,不会有空行),修正后的代码如下:
' ------ FR020 ----- '用于查找最后一行的变量 Dim DernLigne As Long ' 从A列最后一行往上找,获取已有数据的最后一行行号 DernLigne = Range("A" & Rows.Count).End(xlUp).Row ' 要插入新数据,需要在最后一行的下一行,所以行号+1 DernLigne = DernLigne + 1 ' 在对应列插入值 Range("A" & DernLigne).Value = "FR020" Range("D" & DernLigne).Value = "03700" Range("E" & DernLigne).Value = "59800019FR"
小提示
- 如果A列可能存在空行,也可以用
Cells(Rows.Count, "A").End(xlUp).Row,效果完全一样。 - 一定要记得加
DernLigne = DernLigne + 1哦!因为End(xlUp)找到的是已有数据的最后一行,新数据得插在它的下一行才对。
内容的提问来源于stack exchange,提问作者Larow
相关产品推荐
相关产品推荐

