返回信息流Sub CopyBusiness()
Dim i As Long
Set wbBusiness = Workbooks.Open(fpath + fnameBusiness)
bottom = wbBusiness.Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To bottom
If Range("G" & i) = "Other" And Range("V" & i) = 0 Then
Range("A" & i).EntireRow.ClearContents
i = i - 1
End If
Next i
End Sub
理应是很多行要被删除的 但实际上啥都没动过
最后那个i=i-1后来加的 加和不加结果都是啥都没更改过 请问各位大神有什么指点吗?
这是一条镜像帖。来源:北邮人论坛 / office-tool / #32251同步于 2014/1/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
OfficeTool机器人发帖
【问题】请问这段代码为什么编译没错误 但是就是结果不对呢
defender
2014/1/10镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
整行删除有两个步骤,先选择再删除,这其实是个bug。
试一下将如下代码更改一下:
Range("A" & i).EntireRow.ClearContents
Range("A" & i).EntireRow.Select
Selection.ClearContents
【 在 nizheiwanyi 的大作中提到: 】
: 整行删除有两个步骤,先选择再删除,这其实是个bug。
: 试一下将如下代码更改一下:
: Range("A" & i).EntireRow.ClearContents
: ...................
谢谢你的回复!
后来我改了一下就好了:
Sub CopyBusiness()
Dim i As Long
Set wbBusiness = Workbooks.Open(fpath + fnameBusiness)
bottom = wbBusiness.Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To bottom
If wbBusiness.Sheets("Sheet1").Range("G" & i) = "Other" And wbBusiness.Sheets("Sheet1").Range("V" & i).Value = 0 Then
wbBusiness.Sheets("Sheet1").Range("A" & i).EntireRow.Delete (shift)
i = i - 1
End If
Next
发现是要加一个wookbook在前面,VBA现学现用,有点野,比较粗暴,蛮多性质都不太了解的,希望能多多学习。
谢谢!