ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 选定的多个区域清空报错!!怎么解决呀!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-2-8 11:45 | 显示全部楼层 |阅读模式
Sub A1231213()
  ActiveSheet.Copy After:=Sheets(Sheets.Count)
Dim xStr As String
Retry:
   Err.Clear
   xStr = InputBox("请输入工作表的新名称:" _
       , "重命名工作表", ActiveSheet.Name)
   If xStr = "" Then Exit Sub
   On Error Resume Next
   ActiveSheet.Name = xStr
   If Err.Number <> 0 Then
     MsgBox Err.Number & " " & Err.Description
     Err.Clear
     GoTo Retry
    End If
    On Error GoTo 0
    '.........

    Range("K4:K342").Copy
    Range("G4:G342").PasteSpecial (xlPasteValues)
    Application.CutCopyMode = xlCut
    Range("H4:J27,H29:J47,H49:J51,H53:J54,H56:J58,H60:J61,H63:J64,H66:J67,H69:J70,H72:J94,H96:J115,H117:J120,H122:J128,H130:J133,H135:J142,H144:J155,H157:J162,H164:J170,H172:J174,H176:J177,H179:J180,H182:J183,H185:J187,H189:J196,H198:J199,H201:J208,H210:J211,H213:J214,H216:J218,H220:J225,H227:J228,H230:J231,H233:J234,H236:J236,H238:J239,H241:J244,H246:J247,H250:J283,H285:J292,H294:J295,H297:J298,H300:J301,H304:J304,H306:J310,H312:J313,H316:J323,H325:J327,H329:J331,H333:J336,H338:J339").ClearContents
End Sub

   宏前面  可以正常运行,到最后一步的选定区域清空就报错   运行错误1004
方法‘range’作用于对象‘_Global’时失败!!!   问题在于  这个宏在WPS中正常运行,在excel就报错!!! 如果录制宏  单独选定多个区域清空,区域一共有339行  清到200行行就停止了!
也试过Union  
Dim SuperRange As Range
Set SuperRange = Union(Range("H4:J27,H29:J47"), Range("H49:J51,H53:J54"), Range("H56:J58,H60:J61"), Range("H63:J64,H66:J67"), Range("H69:J70,H72:J94"), Range("H96:J115,H117:J120"), Range("H122:J128,H130:J133"), Range("H135:J142,H144:J155"), Range("H157:J162,H164:J170"))
Set SuperRange = Union(SuperRange, Range("H172:J174,H176:J177"), Range("H179:J180,H182:J183"), Range("H185:J187,H189:J196"), Range("H198:J199,H201:J208"), Range("H210:J211,H213:J214"), Range("H216:J218,H220:J225"), Range("H227:J228,H230:J231"), Range("H233:J234,H236:J236"), Range("H238:J239,H241:J244"), Range("H246:J247,H250:J283"), Range("H285:J292,H294:J295"), Range("H297:J298,H300:J301"), Range("H304:J304,H306:J310"), Range("H312:J313,H316:J323"), Range("H325:J327,H329:J331"), Range("H333:J336,H338:J339"))
SuperRange.selet
selection.ClearContents shift:=xlup
第三行也报错



TA的精华主题

TA的得分主题

发表于 2023-2-9 08:20 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-2-9 08:59 | 显示全部楼层


Dim rng As Range
    Dim rng1 As Range
    Dim rng2 As Range

Set rng1 = Range("H4:J27,H29:J47,H49:J51,H53:J54,H56:J58,H60:J61,H63:J64,H66:J67,H69:J70,H72:J94,H96:J115,H117:J120,H122:J128,H130:J133,H135:J142,H144:J155,H157:J162,H164:J170,H172:J174,H176:J177,H179:J180,H182:J183,H185:J187,H189:J196,H198:J199")
   Set rng2 = Range("H201:J208,H210:J211,H213:J214,H216:J218,H220:J225,H227:J228,H230:J231,H233:J234,H236:J236,H238:J239,H241:J244,H246:J247,H250:J283,H285:J292,H294:J295,H297:J298,H300:J301,H304:J304,H306:J310,H312:J313,H316:J323,H325:J327,H329:J331,H333:J336,H338:J339")
Set rng = Union(rng1, rng2)
rng.Select
Selection.ClearContents



昨天等了好久没人回!我自己又试了试 改成上面这样就成功了

TA的精华主题

TA的得分主题

发表于 2023-2-9 12:18 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
lqf935258447 发表于 2023-2-9 08:59
Dim rng As Range
    Dim rng1 As Range
    Dim rng2 As Range

回复的人少,是因为你没上附件。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-2-9 13:58 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 lqf935258447 于 2023-2-9 14:04 编辑
ykcbf1100 发表于 2023-2-9 12:18
回复的人少,是因为你没上附件。

你好  这个表  可以复制表并重命名后   里面把B列无公式单元格清内容,另外把里面的公式引用位置也能更新吗! 每天建表后 里面的公式因为要把上一天的C5和今日表格B5相加并把数值返回在今日表格B5里!  刚接触VBA   想解决也不知道思路和方法 想百度也不知道如何说明查找

2023.02-资金收支统记.rar

25.26 KB, 下载次数: 3

TA的精华主题

TA的得分主题

发表于 2023-2-9 14:23 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-2-9 14:25 | 显示全部楼层
tanglf188 发表于 2023-2-9 14:23
2.4 2.5断了,什么情况就不连续了?

双休节假日例外是吧

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-2-9 14:31 | 显示全部楼层
tanglf188 发表于 2023-2-9 14:25
双休节假日例外是吧

嗯嗯  一般都是双休节假日不上班 所以放假期间不需要做表!正常的时候还好  碰到国家因为调休,有时候周末的日期也会建表,所以 每天上班的时候才会建表,

TA的精华主题

TA的得分主题

发表于 2023-2-9 15:09 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
lqf935258447 发表于 2023-2-9 14:31
嗯嗯  一般都是双休节假日不上班 所以放假期间不需要做表!正常的时候还好  碰到国家因为调休,有时候周 ...

大概写了一下,自己测试一下,有问题留言

image.png

2023.02-资金收支统记.zip

34.26 KB, 下载次数: 4

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-2-9 15:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 lqf935258447 于 2023-2-9 16:03 编辑
tanglf188 发表于 2023-2-9 15:09
大概写了一下,自己测试一下,有问题留言

老师 不好意思 ,可能我表达的不够清除 因为刚接触 ,我自己其实也没理解全自己需求! 这个表格  因为是每天手动建,所以时间和工作表名可以自己手动输入,比如当我在2.7工作表时,所以点宏的时候,对当前活动表创建副本,并弹出重命名窗口手动输入工作表名!
   ActiveSheet.Copy After:=Sheets(Sheets.Count)
Dim xStr As String
Retry:
   Err.Clear
   xStr = InputBox("请输入工作表的新名称:" _
       , "重命名工作表", ActiveSheet.Name)
   If xStr = "" Then Exit Sub
   On Error Resume Next
   ActiveSheet.Name = xStr
   If Err.Number <> 0 Then
     MsgBox Err.Number & " " & Err.Description
     Err.Clear
     GoTo Retry
    End If
    On Error GoTo 0
    Range("B5:B10,B12:B21,B24").ClearContents
这是我上面的需求改的!剩下我做不了的是,,我想当我建2.9表,我需要2.9表的C5数值为2.9表内B5加上一个表2.8的C5数值,C列如此,2.9表的B26=2.8的B30 B27=2.8的B31!  我们建表都是  2月的 2.1这样  3月就是3.1 这样! 如果表名这样引用不方便 那如何规范呢!2月9日 这样可行吗!
还有您建vba  当建2.9表完成后引用C列 引用的还是2.7的数值
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-19 09:30 , Processed in 0.041469 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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