ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

求助高手帮看下另一高手代码错在哪里

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-3-2 20:48 | 显示全部楼层 |阅读模式
(1)代码的目的是将A列所有包含“星“或 ”空“
的单元格全部删除,A列可以是1048576行哦
但我复制他的代码就出现编译错误感谢高手帮我更正
一下
(2)另外还有个请求请高手顺便再写一个将A列所有同时
包含““”星”“与 ”空“"的单元格删除即是:将同时出
现"星"与"空"的A2,A9,A10单元格删除但A4,A8不删除
A列可以是1048576行,每个单元格内最多有10个汉字或数字或字母哦
尽可能用高效的代码原因A列有可能是1048576行数据
怕用时过长


请教EXCEL高手另外一位高手写的代码哪里不对了?.rar

561.76 KB, 下载次数: 11

请教高手

TA的精华主题

TA的得分主题

发表于 2024-3-2 21:07 | 显示全部楼层
请教EXCEL高手另外一位高手写的代码哪里不对了?.zip (665.88 KB, 下载次数: 10)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-3-2 21:11 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-3-2 21:14 | 显示全部楼层
  1. Function Find_Range(Find_Item As Variant, _
  2. Search_Range As Range, _
  3. Optional LookIn As Variant, _
  4. Optional LookAt As Variant, _
  5. Optional MatchCase As Boolean) As Variant
  6. ' 定义一个名为Find_Range的函数,用于在指定的范围内查找指定项
  7. ' Find_Item: 要查找的项
  8. ' Search_Range: 要在其中进行查找的范围
  9. ' LookIn: 查找时要考虑的内容类型(可选,默认为xlValues)
  10. ' LookAt: 查找时要考虑的匹配类型(可选,默认为xlPart)
  11. ' MatchCase: 是否区分大小写(可选,默认为False)

  12. Dim c As Range
  13. Dim CustArry() As Variant
  14. Dim row As Integer
  15. Dim firstAddress As String

  16. If IsMissing(LookIn) Then LookIn = xlValues 'xlFormulas
  17. If IsMissing(LookAt) Then LookAt = xlPart 'xlWhole
  18. If IsMissing(MatchCase) Then MatchCase = False
  19. ' 如果未提供LookIn、LookAt或MatchCase参数,则使用默认值
  20. Excel.Application.ScreenUpdating = False
  21. With Search_Range
  22.    Set c = .Find( _
  23.      What:=Find_Item, _
  24.      LookIn:=LookIn, _
  25.      LookAt:=LookAt, _
  26.      SearchOrder:=xlByRows, _
  27.      SearchDirection:=xlNext, _
  28.      MatchCase:=MatchCase, _
  29.      SearchFormat:=False)
  30.    ' 在指定范围内查找指定项,并返回第一个匹配的单元格
  31.    If Not c Is Nothing Then
  32.      Set Find_Range = c
  33.      firstAddress = c.Address
  34.      Do
  35.        Set Find_Range = Union(Find_Range, c)
  36.        Set c = .FindNext(c)
  37.        ' 将找到的单元格添加到Find_Range中,然后继续查找下一个匹配项
  38.      Loop While Not c Is Nothing And c.Address <> firstAddress
  39.    End If
  40. End With
  41. Excel.Application.ScreenUpdating = True
  42. End Function
  43. Sub TestFindRange()
  44.     Dim resultRange As Range
  45.     i0 = InputBox("请输入需要定位的值", "参数1")
  46.     i1 = InputBox("请输入需要定位的范围", "参数2")
  47.     Set resultRange = Find_Range(i0, Range(i1))
  48.     If Not resultRange Is Nothing Then
  49.         resultRange.Select
  50.     Else
  51.         MsgBox "未找到匹配项"
  52.     End If
  53. End Sub



复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-3-2 21:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
你看看这个是否可以使用,需要稍微修改一下

TA的精华主题

TA的得分主题

发表于 2024-3-2 21:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
image.png

TA的精华主题

TA的得分主题

发表于 2024-3-2 21:38 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-3-3 19:07 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-3 22:11 | 显示全部楼层

感谢星的回复,您的代码可行。现再次请教请移步到我的贴子!

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-3 22:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

多谢半百指导确实是这样
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-9-29 22:28 , Processed in 0.045610 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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