如何解决Excel VBA For循环,出现UsedRange计数错误
maxRow = ws.UsedRange.EntireRow.Count
For n = 1 To maxRow
do while Not IsEmpty(ws.Range("D" & n).Value)
ws.Range("D" & n & ":" & "E" & n).Delete shift:=xlShiftToLeft
Rows(n + 1).Insert shift:=xlShiftDown
maxRow = maxRow + 1
Loop
Next n
我只是想知道为什么我的代码总是在n = 19(原始maxRow计数)时退出。我添加了maxRow = maxRow +1,因为我插入了一行,这样它直到完成才退出。
我想做的是删除两个单元格(D&E),并在其下方插入一行,直到D&E为空。
谢谢
解决方法
您没有回答我的问题,我基于这样一个假设:准备一个答案,该代码必须用正确的邻居(F:G)替换D:E中的单元格,并在经过处理的范围之后插入一行。如果此假设正确,请测试下一个代码:
Sub testDeleteRangeInsertRow()
Dim ws As Worksheet,n As Long
Set ws = ActiveSheet
n = 2
Do While Not IsEmpty(ws.Range("D" & n).value)
ws.Range("D" & n & ":" & "E" & n).Delete Shift:=xlShiftToLeft
Rows(n + 1).Insert Shift:=xlShiftDown
n = n + 2
Loop
End Sub
如果我的假设是错误的,请更好地(用言语...)解释您需要完成的工作...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。