ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 数据处理,高手请进!

[复制链接]

TA的精华主题

TA的得分主题

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

回复 20楼 vincent.cn 的帖子

按照20楼的意思,应该按照b列分组:
数据请教55.rar (10.55 KB, 下载次数: 13)

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-18 23:06 | 显示全部楼层
太感谢您了,我是VBA的初学者。我得仔细学习这段代码。问题解决了,接下来就是用大量的数据验证了。
zhaogang1960老师,很不好意思地问你下,可以给我解决另外一个问题吗,还是要重新发新帖才行。
Sub 复制()
    Dim i%
    i = Selection.Rows.Count
    ActiveCell.Range("A1:AI" & i).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Copy
End Sub
这是一段录制加修改的宏,问题是现在它可以在同一列当中同时选择几个连续的单元格执行,却不能在同一列当中同时选择几个不连续的单元格执行,请问该如何修改才好!

TA的精华主题

TA的得分主题

发表于 2009-6-18 23:55 | 显示全部楼层

回复 22楼 vincent.cn 的帖子

没有遇到这样的问题,试试看吧:
Sub Macro1()
    If Selection Is Nothing Then Exit Sub
    Dim c As Range, rng As Range, lc As Integer
    On Error GoTo 100
    For Each c In Selection
        If rng Is Nothing Then
            lc = c.End(xlToRight).Column - c.Column + 1
            Set rng = c.Resize(1, lc)
        Else
            Set rng = Union(rng, c.Resize(1, lc))
        End If
    Next
    rng.Copy
    Exit Sub
100
    MsgBox "请选择同列单个单元格"
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-19 01:41 | 显示全部楼层
哦,效果很好,可我只需要复制35列和17列就可以了,这个程序好像复制到N列了。
另外帮我看看附件里的工作表打开时应该会有一个窗体弹出,但是好像不知道为什么出错了!先谢了

请教.rar

10.23 KB, 下载次数: 3

TA的精华主题

TA的得分主题

发表于 2009-6-19 08:31 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-6-19 10:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

回复 24楼 vincent.cn 的帖子

第一个问题,每次选择不连续的区域的第一列单元格,以选择的第一行向右延伸列数为准,即:22楼的Selection.End(xlToRight),你说的“只需要复制35列和17列”程序无法判断,如果需要可以加一个对话框来解决
第二个问题我不会,歉

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-19 18:06 | 显示全部楼层

TA的精华主题

TA的得分主题

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

回复 24楼 vincent.cn 的帖子

第二个问题已经发现问题,把OnTime事件放在模块中就可以实现了:
Private Sub UserForm_Initialize()
    Call bbb
End Sub
下面子程序放到模块中:
Sub bbb()
    Application.OnTime Now + TimeValue("00:00:04"), "ClearForm"
End Sub

Sub ClearForm()
    On Error Resume Next
    Unload UserForm1
End Sub
新建 Microsoft Excel 工作表.rar (10.67 KB, 下载次数: 9)

[ 本帖最后由 zhaogang1960 于 2009-6-19 23:38 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-20 21:59 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-7-4 12:23 | 显示全部楼层
zhaogang1960老师:非常感谢你的指导。经过大量的数据验证,这段代码很完美,唯一出现附件中的情形时,转换后的数据有异常。请试验

新建 Microsoft Excel 工作表.rar

2.11 KB, 下载次数: 3

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

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-6-17 20:47 , Processed in 0.043044 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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