电子表格可以做宏吗?如何判断某一vba 判断单元格格式中的内容后删除这一行或把重复的行或vba 判断单元格格式改变颜色?

查看: 3031|回复: 16
用宏删除某列中不符合多个条件的单元格所在的行
阅读权限10
在线时间 小时
本帖最后由 白衣青锋 于
12:05 编辑
QQ图片.jpg (103.42 KB, 下载次数: 6)
12:00 上传
见图(一部份,例子在附件)我想把创建者里不是 02 02958 这8个条件(后期可能条件更多)的整行删除(不是删空,是删除),行数每次导出来都是不一定的,宏一定不能固定行数,这个用宏应该怎么写?能说明一下后期如果有新条件,应该怎么添加?
(22.22 KB, 下载次数: 27)
12:04 上传
点击文件名下载附件
阅读权限95
在线时间 小时
请测试:Sub 宏1()
& & Dim arr, brr(), i&, d As Object
& & Set d = CreateObject(&scripting.dictionary&)
& & arr = Array(, 02, 02958)
& & For i = 0 To 7
& && &&&d(arr(i)) = &&
& & Next
& & arr = Range(&C2:C& & Range(&C& & Rows.Count).End(xlUp).Row)
& & ReDim brr(1 To UBound(arr), 1 To 1)
& & For i = 1 To UBound(arr)
& && &&&If Not d.Exists(arr(i, 1)) Then brr(i, 1) = CVErr(2007)
& & Next
& & On Error Resume Next
& & With Cells(1, Columns.Count).Resize(i - 1)
& && &&&.Value = brr
& && &&&.SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete
& & End With
End Sub
复制代码
阅读权限95
在线时间 小时
本帖最后由 zhaogang1960 于
12:52 编辑
(30.33 KB, 下载次数: 94)
12:52 上传
点击文件名下载附件
阅读权限50
在线时间 小时
zhaogang1960 发表于
字典+数组,好方法,学习了。
阅读权限100
在线时间 小时
用另外一个表存贮需要删除或不删除的代码
阅读权限30
在线时间 小时
Sub 删除()
Dim i%, y%, z%
i = Range(&a63356&).End(xlUp).Row
Application.ScreenUpdating = False
For i = 2 To i
& & If Cells(i, 3).Value && 101408 And Cells(i, 3).Value && 102091 And Cells(i, 3).Value && 102657 And Cells(i, 3).Value && 305837 And Cells(i, 3).Value && 1103073 And Cells(i, 3).Value && 1103032 And Cells(i, 3).Value && 1102660 And Cells(i, 3).Value && 1102958 Then
& & Rows(i).Delete
& & End If
Application.ScreenUpdating = True
' 02 02958
阅读权限10
在线时间 小时
zhaogang1960 发表于
首先多谢版主的帮助!但根据您做的附件,我试了之后,有漏网之鱼呢!这还只是随便找的一个。不知道这个是我电脑的原因么?
测试前.jpg (141.9 KB, 下载次数: 12)
12:38 上传
测试后.jpg (118.21 KB, 下载次数: 6)
12:38 上传
3楼附件已更换请测试&
阅读权限10
在线时间 小时
gaohong267 发表于
Sub 删除()
Dim i%, y%, z%
i = Range(&a63356&).End(xlUp).Row
谢谢!您的代码我试了,有用,但要连续按好几次才能删干净,这是怎么回事呢?
阅读权限95
在线时间 小时
白衣青锋 发表于
首先多谢版主的帮助!但根据您做的附件,我试了之后,有漏网之鱼呢!这还只是随便找的一个。不知道这个是 ...
错位了,修改如下:Sub 宏1()
& & Dim arr, brr(), i&, d As Object
& & Set d = CreateObject(&scripting.dictionary&)
& & arr = Array(, 02, 02958)
& & For i = 0 To 7
& && &&&d(arr(i)) = &&
& & Next
& & arr = Range(&C2:C& & Range(&C& & Rows.Count).End(xlUp).Row)
& & ReDim brr(1 To UBound(arr), 1 To 1)
& & For i = 1 To UBound(arr)
& && &&&If Not d.Exists(arr(i, 1)) Then brr(i, 1) = CVErr(2007)
& & Next
& & On Error Resume Next
& & With Cells(2, Columns.Count).Resize(i - 1)
& && &&&.Value = brr
& && &&&.SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete
& & End With
End Sub
复制代码
阅读权限30
在线时间 小时
Sub 删除()
Dim i%, y%, z%
i = Range(&c63356&).End(xlUp).Row
Application.ScreenUpdating = False
For i = i To 2 Step -1
& & If Cells(i, 3).Value && 101408 And Cells(i, 3).Value && 102091 And Cells(i, 3).Value && 102657 And Cells(i, 3).Value && 305837 And Cells(i, 3).Value && 1103073 And Cells(i, 3).Value && 1103032 And Cells(i, 3).Value && 1102660 And Cells(i, 3).Value && 1102958 Then
& & Rows(i).Delete
& & End If
Application.ScreenUpdating = True
' 02 02958
反过来就可以了&&你再试试&&应该比楼上的 字典快一点&&如果还有条件&&就加& &and
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师查看: 2250|回复: 6
求一个可以自动判断复制位置的宏,我每次复制都要复制到表格里有内容的一行的下一行
阅读权限20
在线时间 小时
(7.11 KB, 下载次数: 18)
10:04 上传
点击文件名下载附件
也就是说,如果第二行有内容,他就自动复制到第三行
如果第三行有内容,就自动复制到第4行
阅读权限20
在线时间 小时
试试,选中A,B两列(必须包含数据的那一行),然后点击复制
10:38 上传
点击文件名下载附件
11.83 KB, 下载次数: 26
阅读权限20
在线时间 小时
<font color="#6445391 发表于
试试,选中A,B两列(必须包含数据的那一行),然后点击复制
试了,但是一次只能复制一行过去。如果选择超过了一行,比如我选择了3行,那边复制出来还是只有一行,因为在实际运用中,会涉及到同时选择N行复制。可以做到吗?
阅读权限20
在线时间 小时
再试试这个
17:07 上传
点击文件名下载附件
9.2 KB, 下载次数: 92
阅读权限20
在线时间 小时
本帖最后由 rokiroll 于
22:39 编辑
<font color="#6445391 发表于
再试试这个
没问题了,谢谢
阅读权限20
在线时间 小时
& & & & & & & &
本帖最后由 rokiroll 于
22:39 编辑
<font color="#6445391 发表于
再试试这个
没问题了谢谢!
阅读权限20
在线时间 小时
<font color="#6445391 发表于
再试试这个
为什么当我进度单里面的日期全部删除后,然后在结算单里选择一月,所有工资都出现了?
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师求excel宏代码:多条件删行,把C列单元格大于0的,A列单元格中包含字符“aa”的,删除整行。vba代码怎么写_百度知道
求excel宏代码:多条件删行,把C列单元格大于0的,A列单元格中包含字符“aa”的,删除整行。vba代码怎么写
提问者采纳
ub test()Aa&quot.End(xlUp); 0 And Range(&quot.DeleteNextA Then Rows(i).Row To 1 Step -1If Range(&c&*aa*& & i) & & i) Like &quot.ScreenUpdating = FalseDim i As LongFor i = [a65536]
这三个回答中,你的回答最正确,删行应该倒着删。如果条件改为:A列单元格中不包含字符“aa”,代码怎么写?
If Range(&c& & i) & 0 And not (Range(&a& & i) Like &*aa*& ) Then Rows(i).Delete
提问者评价
二楼的回答是最正确,删行应该倒着删。同时感谢一、三楼的回答。
来自团队:
其他类似问题
为您推荐:
其他2条回答
)&aa&0 and instr(cells(r,1), &0 then
rows(r)dim rfor r=起始行 to 结束行
if cells(r,3)&gt
如果条件改为:A列单元格中不包含字符“aa”,代码怎么写?
dim rfor r=起始行 to 结束行
if cells(r,3)&0 and instr(cells(r,1), &aa&)=0 then
rows(r).delete
end ifnext r
sub 删行()dim i as integer for i = 1 to worksheetfunction.countif(rang(&A:A&),&&&&&&&)
If cells(i,&A&) like &aa& and cells (i,&C&)=0 then rows(I).delete nextend sub
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁查看: 356|回复: 4
执行宏时,提示:是否清除单元格内容怎么编写?
阅读权限20
在线时间 小时
在执行宏时,弹窗提示:是 否---清除单元格内容,
点击“是”时清除(C3,C15,R4:V13)单元格内容后,宏继续向下执行。
点击“否”时,宏继续向下执行。
阅读权限95
在线时间 小时
Sub zhix()
s = MsgBox(&是 否---清除单元格内容&, vbOKCancel)
If s = 1 Then Union(Range(&c3&), Range(&c15&), Range(&r4:v13&)).ClearContents
阅读权限50
在线时间 小时
Sub 清除()
& &If MsgBox(&是否清除单元格内容?&, vbQuestion + vbYesNo) = vbYes Then
& && &Range(&C3,C15,R4:V13&).ClearContents
& &End If
End Sub复制代码
阅读权限20
在线时间 小时
感谢你及时准确的回复,代码很好用。
阅读权限20
在线时间 小时
Sub 清除()
& & Set rn = Application.InputBox(&请选择你需要清除的区域!&, &选择&, Type:=8)
& &If MsgBox(&是否清除单元格& & VBA.Replace(rn.Address, &$&, &&) & &内容?&, vbQuestion + vbYesNo, &警告&) = vbYes Then
& && &Range(rn.Address).ClearContents
& &End If
End Sub
复制代码
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师要读懂这段叙述,你认为哪些名称和术语需给出定义?
解:电子表格,Excel,自动填充,单元格等.
下载完整版《4.1定义与命题同步测控及答案2课时》Word试卷
相关资源搜索
最新同类资源
| 技术支持:QQ
Copyright & 2014
All Rights Reserved 粤ICP备号}

我要回帖

更多关于 vba 判断单元格格式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信