ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

电话号码簿中间插入人员,如何在插入行往下顺移一行

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-3-24 07:47 | 显示全部楼层

sylun兄,谢谢你了!

中间有一些不规范的合并单元格,运行后有些表格就乱了,而且没在光标出插入一空行!

剪切粘贴的办法可行,模拟手工作业,如果再辅以判断,更好些。比如最后表格有无空行,若无,再建一同样格式的空表格,如有,则把有数据的地方剪切到空行。

我的目的是学习vba,而不是完成这个工作。sylun兄,目前我还跟你不上,对一些对象属性方法还不知如何运用,你的回复是我最好的教材!如果整理的有最基本的应用实例,请给我个电子文档,ju_shi0347@163.com,谢谢你了!

TA的精华主题

TA的得分主题

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

我的学习资料均来自本论坛及word帮助文件。

继续练习处理表格。原代码确实存在问题,原来没注意这个,也没有用附件测试。以我目前的能力,最多只能将各表格按统一行数的方式顺移。以下程序稍长,而且还有些问题未能解决,手法也是初级的,运行效率无力考究,也不知能否在较大的文档中运行。希望能得到各位的指点。

Sub move_row()

'设定每个表格为不多于11

    Dim i As Integer, n As Integer, k As Integer, c As Integer

    Dim myRange As Range, testlen As Long, m As Integer

   

    Application.ScreenUpdating = False

    With ThisDocument.Range

        If .Tables.Count > 1 Then

            For i = 1 To .Tables.Count - 1

                If .Tables(i).Rows.Count > 11 Then

                    '计算多出的行数

                    n = .Tables(i).Rows.Count - 11

                    '删除多出部分的空白行

                    k = 12

                    Do While k < 12 + n

                        k = k + 1

                        .Tables(i).Cell(k, 1).Select

                        Selection.MoveEnd unit:=wdRow

                        If Len(Selection.Range.Text) < 13 Then

                            Selection.MoveDown Count:=n - 1, Extend:=wdExtend

                            Selection.Cut

                            Exit Do

                        End If

                    Loop

                    '移动多余的行

                    If .Tables(i).Rows.Count > 11 Then

                        .Tables(i).Cell(12, 1).Select

                        With Selection

                            .MoveEnd unit:=wdRow

                            .MoveDown Count:=n - 1, Extend:=wdExtend

                            .Range.Cut

                        End With

                        .Tables(i + 1).Cell(2, 1).Select

                        Selection.MoveEnd unit:=wdRow

                        Selection.Paste

                    End If

                End If

            Next

[此贴子已经被作者于2007-3-25 16:56:14编辑过]

TA的精华主题

TA的得分主题

发表于 2007-3-25 16:58 | 显示全部楼层

            '处理最后一个表格
         With .Tables(.Tables.Count)

                If .Rows.Count > 11 Then
                            testlen = Len(.Rows(12).Range.Text)

                    If testlen > 12 Then

                        .Range.Copy

                        .Range.Select

                        With Selection

                            .MoveDown Count:=2

                            For m = 1 To 5

                                .TypeParagraph

                            Next m

                            .Paste

                        End With

                        Set myRange = Selection.GoToPrevious(what:=wdGoToTable)

                        With myRange.Tables(1)

                            .Rows(2).Select

                            Selection.MoveDown Count:=9, Extend:=wdExtend

                            Selection.Cut

                            c = 11 - .Rows.Count

                            .Rows.Last.Select

                            Selection.InsertRowsBelow c

                            Exit Sub

                        End With

                    End If

                End If

            End With

        End If

    End With

    Application.ScreenUpdating = True

End Sub

[此贴子已经被作者于2007-3-25 17:24:04编辑过]

TA的精华主题

TA的得分主题

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

利用插入文本框方法可以解决号码编辑问题。

1.在文档中根据需要插入N个文本框;

2.将所有人员号码利用表格一次性编辑好后,复制到第一个文本框中,点击"文本框工具栏"中的"创建文本框链接",会将第一个文本框中显示不下的内容链接到第二个文本框,依此类推,直到排完所有内容.

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-4-19 22:33 | 显示全部楼层
谢谢楼上提供的新方法,我试着做做看!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 20:30 , Processed in 0.040998 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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