ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4257|回复: 12

求教高手,如何逻辑删除一行(付图)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-4-3 23:00 | 显示全部楼层 |阅读模式
我是新手,请教老师:如下图,用VBA( 写语句 )如何自动删除交易额小于“10” 的记录(行),即只保留大于10的记录。谢谢了!!!


[img]file:///C:\Users\mrleeboo\AppData\Roaming\Tencent\Users\996364782\QQ\WinTemp\RichOle\B9}1IB9[2S81%JZ}9LMOP7U.jpg[/img] 111.jpg

[img]file:///C:\Users\mrleeboo\AppData\Roaming\Tencent\Users\996364782\QQ\WinTemp\RichOle\B9}1IB9[2S81%JZ}9LMOP7U.jpg[/img]


TA的精华主题

TA的得分主题

发表于 2013-4-3 23:13 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
假设楼主的工作表的CodeName 为 Sheet1:
Sub test()
Dim TempRow As Long, LastRow As Long
With Sheet1
    LastRow = .Cells(.Rows.Count, 2).End(xlUp).Row
    For TempRow = LastRow To 2 Step -1
        If .Cells(TempRow, 2).Value < 10 Then
            .Rows(TempRow).Delete
        End If
    Next TempRow
End With
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-4-4 00:02 | 显示全部楼层
这么快,谢谢。
我还是看不懂。能逐句翻译一下吗?
慢慢体会,看懂了。

其他的懂了,这句没懂,能解释下吗: LastRow = .Cells(.Rows.Count, 2).End(xlUp).Row ??

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-4-4 00:07 | 显示全部楼层
我理解为 给 lastrow 赋值 最长的行的行数 ,如果是上图lastrow就=21,

我理解的正确吗?

TA的精华主题

TA的得分主题

发表于 2013-4-4 07:28 | 显示全部楼层
顺顺爸 发表于 2013-4-4 00:07
我理解为 给 lastrow 赋值 最长的行的行数 ,如果是上图lastrow就=21,

我理解的正确吗?

LastRow 的赋值语句目的是获得该工作表中最后一行的行号(是已经使用的,而不是整个工作表的总行数。Excel2003的工作表的总行数是65536,而Excel2007的工作表的总行数是1048576),不是最长的行的行数。

其中 .Rows.Count 就是为了得到该工作表的总行数。无论是何版本的 Excel 都可以通用。

在Excel中,为了准确查找某列已经使用的最后一行,比较好的办法是从该列的最底下的一个单元格往上查,即同时按下 Ctrl+↑(向上箭头)。如果从最上面第一行向下查的话,即同时按下 Ctrl+↓(向下箭头),只要中间某行单元格内为空,则会停止在该空单元格上面的一个单元格上。所以不一定能够得到想要的结果。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-4-4 21:19 | 显示全部楼层
解释的又细致又清楚,谢谢lu_zhao_long。

如果要增加一个条件该如何编写呢: 即自动删除"交易额1"和“交易额2”同时小于“10” 的记录(行)?
222.jpg
[img]file:///C:\Users\mrleeboo\AppData\Roaming\Tencent\Users\996364782\QQ\WinTemp\RichOle\$NQN@`CHX}(5]G[QT@6IW44.jpg[/img]

[img]file:///C:\Users\mrleeboo\AppData\Roaming\Tencent\Users\996364782\QQ\WinTemp\RichOle\$NQN@`CHX}(5]G[QT@6IW44.jpg[/img]


TA的精华主题

TA的得分主题

发表于 2013-4-4 22:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
顺顺爸 发表于 2013-4-4 21:19
解释的又细致又清楚,谢谢lu_zhao_long。

如果要增加一个条件该如何编写呢: 即自动删除"交易额1"和“交 ...

For TempRow = LastRow To 2 Step -1
        If .Cells(TempRow, 2).Value < 10 And .Cells(TempRow, 3).Value < 10 Then
            .Rows(TempRow).Delete
        End If
    Next TempRow

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-4-4 22:27 | 显示全部楼层
谢谢。
非常感谢,这个语句终于学会{:soso_e179:}{:soso_e179:}了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-4-7 23:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
再次请教高手,如果是逻辑删除列,怎么写呢?删除行的时候,可以用数字(123456789)循环,列(ABCDEFG……)如何循环?
如图,我只需要保留“公司”、“品目”、“交易额”、“发生日期”这四列,不符合的列都删除:
333.jpg


TA的精华主题

TA的得分主题

 楼主| 发表于 2013-4-7 23:16 | 显示全部楼层
本帖最后由 lu_zhao_long 于 2013-4-10 20:06 编辑

再次请教,如果遇到弹出msgbox(程序运行暂停,要我选择)的时候,我如何编程能全自动运行(即不暂停,直接选择“是”)。
(如图:我做的是把“开票日期”分列(3列)只保留年,去掉月、日)
555.jpg
以下是我录制的宏:
Sub Macro3()
'
' Macro3 Macro
'


'
    Application.DisplayAlerts = False
    Columns("B:B").Select
    Application.CutCopyMode = False
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Columns("C:C").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="-", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), _
        TrailingMinusNumbers:=True
    Columns("B:C").Select
    Selection.Delete Shift:=xlToLeft
    Range("A2").Select
    Application.DisplayAlerts = True
End Sub



您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-23 10:12 , Processed in 0.041555 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表