ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 1e3e

[求助] 简单的复制 插入 粘贴问题 ,希望能用vba解决

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-13 19:48 | 显示全部楼层
jacky0202 发表于 2018-3-13 17:16
废了好多脑细胞以为看懂了,再看你的要求还是没看懂O(∩_∩)O哈哈~

表达能力欠佳让您费眼神了

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-13 21:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
http://club.excelhome.net/thread-1384185-1-1.html
用户king37到处要收费帮忙答贴
原信息
需要的话,请将附件和要求发到francisco37@163.com且再将微信号18201853410加上便于收费和沟通,谢谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-21 09:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
来看的人多,帮助的人没有

TA的精华主题

TA的得分主题

发表于 2018-3-21 11:19 | 显示全部楼层
Private Sub CommandButton1_Click()
Set dica = CreateObject("Scripting.Dictionary")
For i = 2 To 99
    If Cells(i, 24).Value > 0 Then dica(Cells(i, 24).Value) = i
Next
Set dicb = CreateObject("Scripting.Dictionary")
With Worksheets("空表")
For i = 2 To 444
    If .Cells(i, 24).Value > 0 Then dicb(.Cells(i, 24).Value) = i
Next
End With
Dim arr
For i = 57 To 1 Step -1
   If dica(i + 1) - dica(i) > 1 Then
      arr = Cells(dica(i) + 1, 1).Resize(dica(i + 1) - dica(i) - 1, 14)
      Sheets("空表").Rows(dicb(i) + 1).Resize(dica(i + 1) - dica(i) - 1).Insert (3)
      Sheets("空表").Cells(dicb(i) + 1, 1).Resize(dica(i + 1) - dica(i) - 1, 14) = arr
   End If
Next
End Sub

附件:   复件 问题.zip (198.33 KB, 下载次数: 27)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-24 11:37 | 显示全部楼层
zopey 发表于 2018-3-21 11:19
Private Sub CommandButton1_Click()
Set dica = CreateObject("Scripting.Dictionary")
For i = 2 To 99 ...

谢谢我试试看是不是我需要的,佩服会用字典的高手

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-24 12:21 | 显示全部楼层
本帖最后由 1e3e 于 2018-3-25 14:23 编辑
zopey 发表于 2018-3-21 11:19
Private Sub CommandButton1_Click()
Set dica = CreateObject("Scripting.Dictionary")
For i = 2 To 99 ...

大虾,有如下问题:
1、代码执行后,没有复制“某县某镇某村渠道防渗工程”的49万元!!!
2、请再看一下我新上传的附件,我需要将 a县 、b县、c县……k县等10个县全部复制粘贴到 空表中,3、删除没有明细项的统计项后代码运行出错,希望您有空帮我看看
注:表“f县”中 (一)搬迁安置b计划下面没有 白色的明细项目,所以就把“(一)搬迁安置b计划”删除了。

复件 问题.rar

96.54 KB, 下载次数: 2

删除没有明细项的统计项后代码运行出错.rar

77.38 KB, 下载次数: 1

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-24 20:25 | 显示全部楼层
zopey 发表于 2018-3-21 11:19
Private Sub CommandButton1_Click()
Set dica = CreateObject("Scripting.Dictionary")
For i = 2 To 99 ...

麻烦代码中加点注释可以吗?小白不太懂字典

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-25 22:53 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
人呢?周末高手们都陪老婆去了吗?

TA的精华主题

TA的得分主题

发表于 2018-3-26 08:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
问题1、代码执行后,没有复制“某县某镇某村渠道防渗工程”的49万元!!!
     空表 32标号附近的单元格 消除合并,即可插入、复制

问题2、需要将 a县 、b县、c县……k县等10个县
     Set dicb = CreateObject("Scripting.Dictionary")
With Worksheets("空表")
For i = 2 To 444
    If .Cells(i, 24).Value > 0 Then dicb(.Cells(i, 24).Value) = i
Next

代码中的444行可能不够用了,修改为更大的一数字,比如 999行
     

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-26 20:38 | 显示全部楼层
本帖最后由 1e3e 于 2018-3-26 21:39 编辑
zopey 发表于 2018-3-26 08:43
问题1、代码执行后,没有复制“某县某镇某村渠道防渗工程”的49万元!!!
     空表 32标号附近的单元格 ...

请看附件,
1、如果我将“”样表一“再复制一份改名为"样表二",(就是将样表一 和样表二的 数据汇总 至“空表”中)
再点“空表”中的“复制粘贴按钮” ,这时代码是正常的,得到投资总额为511万元。(因为“样表一”和"样表二"投资为255.5万元)
这种情况即为附件中"运行正确.xls"。
2、因为“(六)供电b计划  至  五、技能培训与职业教育b计划  ”没有投资额,所以有时会被删除,也就是说没有投资额部分就有可能被删除,这时删除后运行代码就不正确了,得到投资总额为608.88万元,正确投资应该为511万元。这种情况即为附件中"运行错误.xls"。
请问"运行错误.xls"如何修改成正确的?谢谢

稍微调整了代码.rar

163.01 KB, 下载次数: 5

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

本版积分规则

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

GMT+8, 2024-6-29 04:55 , Processed in 0.040829 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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