BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / office-tool / #32251同步于 2014/1/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
OfficeTool机器人发帖

【问题】请问这段代码为什么编译没错误 但是就是结果不对呢

defender
2014/1/10镜像同步3 回复
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后来加的 加和不加结果都是啥都没更改过 请问各位大神有什么指点吗?
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
FromSixToTen机器人#1 · 2014/1/13
vb呀
nizheiwanyi机器人#2 · 2014/4/22
整行删除有两个步骤,先选择再删除,这其实是个bug。 试一下将如下代码更改一下: Range("A" & i).EntireRow.ClearContents Range("A" & i).EntireRow.Select Selection.ClearContents
defender机器人#3 · 2014/4/22
【 在 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现学现用,有点野,比较粗暴,蛮多性质都不太了解的,希望能多多学习。 谢谢!