ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

EH搜索     
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel 2016函数公式学习大典 Office知识技巧免费学 打造核心竞争力的职场宝典
300集Office 2010微视频教程 Tableau-数据可视化工具 精品推荐-800套精选PPT模板,点击获取 ExcelHome出品 - VBA代码宝免费下载
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 Excel VBA经典代码实践指南
查看: 310|回复: 7

[求助] 图片名字前的数字按序替换或者按序自动编号~~

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-1-14 20:29 | 显示全部楼层 |阅读模式
本帖最后由 Tobin_Zhang 于 2020-1-14 22:15 编辑

以下代码中,如何嵌入一段代码,使光标所在位置之后的图片名字,前方的数字从1开始,按顺序进行排列或者按序替换或者按序自动编号~~~
蓝色代码为设置光标所在位置之后的图片尺寸 3.4*2.55inch


Sub Adjust_ImageSize()

    Dim myInlineshape As InlineShape
    Dim i As Integer
   
    Application.ScreenUpdating = False
    With ActiveDocument.Range(Selection.Start, ActiveDocument.Content.End)
       For Each myInlineshape In .InlineShapes
     
   i = i + 1

            With myInlineshape
                .LockAspectRatio = msoFalse
                .Height = InchesToPoints(2.55)
                .Width = InchesToPoints(3.4)
            End With
        Next   



对文档中多个不连续表格中,图片名字前的数字按序排列或者按序替换或者
按序
自动编号
~~


    Application.ScreenUpdating = True
End Sub


Capture.JPG

New Microsoft Word Document.zip

64.19 KB, 下载次数: 11

TA的精华主题

TA的得分主题

发表于 2020-1-16 14:28 | 显示全部楼层
图片改名的代码:
2020-1-16图片改名.png

评分

参与人数 1鲜花 +2 收起 理由
cuanju + 2 优秀作品

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-1-16 20:09 | 显示全部楼层

您好,老师,非常感谢您的解答,本人学过一些Excel VBA,但对WORD VBA不太了解,特向老师请教三个问题:
1. = Left(xh, Len(xh) - 2)  这里为什么要  减 2,我改成-1或者0,最后都会形成  一个空格+一个换行。
2. Word中,  cells(j)表示当前 table 中的  第j个单元格;cell(I,j) 表示 第I行j列 的单元格?cells(j)和cell(I,j)分别适用于什么场合?
3. Word中,range、table、cell三者的所属关系是什么?到底谁包含谁?看一些资料,有时候range在前,有时候range在后,很迷糊....

TA的精华主题

TA的得分主题

发表于 2020-1-17 08:15 | 显示全部楼层
1,就是因为xh里面的最后有2个不可见内容:一个Chr(9)Tab+一个Chr(10)换行;
2,cells(j)要放在Range后面:Tables(1).Range.Cells(j).Range.Text
表示表格中的第几个,比如表格Table有4行3列组成,第一行第一列的是Tables(1).Range.Cells(1)
第一行第三列的是Tables(1).Range.Cells(3);第二行第一列的是Tables(1).Range.Cells(4)
Cell(i,j)是第i行第j列,写法:Tables(1).Cell(1,3).Range.Text 表示第一行第三列
两者区别在多一个s   这个与Excel中的单元格概念有点相似,也容易迷惑。
3,Table在前面,cell(i,j)--Range--Cells(j)--Range
这个是与Excel不一样,容易迷惑。习惯了就好。可以在VBE窗口查看doc里面的各种对象与属性。

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-1-18 21:00 | 显示全部楼层
蓝桥玄霜 发表于 2020-1-17 08:15
1,就是因为xh里面的最后有2个不可见内容:一个Chr(9)Tab+一个Chr(10)换行;
2,cells(j)要放在Range后面: ...

谢谢老师~~又学习了很多知识~~

TA的精华主题

TA的得分主题

发表于 2020-2-8 21:42 | 显示全部楼层
Sub lkyy()
Dim doc As Document, tb As Table, tbs As String
Set doc = ActiveDocument
For Each tb In doc.Tables
    c = tb.Rows.Count
    For i = 2 To c Step 2
        For j = 1 To 2
            n = n + 1
            tb.Cell(i, j).Range.Find.Execute "([0-9]{1,2}).", , , 1, , , , , , n & ".", 1
        Next
    Next
Next
End Sub

For Each tb In doc.Tables
    c = tb.Rows.Count
    For i = 2 To c Step 2
        For j = 1 To 2
            n = n + 1
            'tbs = Replace(Replace(tb.Cell(i, j).Range.Text, Chr(7), ""), Chr(13), "")
            tb.Cell(i, j).Range.Find.Execute "([0-9]{2}).", , , 1, , , , , , n & ".", 1
        Next
    Next
Next
End Sub

评分

参与人数 1鲜花 +2 收起 理由
cuanju + 2 太强大了

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-2-9 20:32 | 显示全部楼层
凌空一羽 发表于 2020-2-8 21:42
Sub lkyy()
Dim doc As Document, tb As Table, tbs As String
Set doc = ActiveDocument

非常感谢老师的知道~~

TA的精华主题

TA的得分主题

发表于 2020-2-9 22:30 | 显示全部楼层
Tobin_Zhang 发表于 2020-2-9 20:32
非常感谢老师的知道~~

我可能复制多了……
Sub lkyy()
Dim doc As Document, tb As Table, tbs As String
Set doc = ActiveDocument
For Each tb In doc.Tables
    c = tb.Rows.Count
    For i = 2 To c Step 2
        For j = 1 To 2
            n = n + 1
            tb.Cell(i, j).Range.Find.Execute "([0-9]{1,2}).", , , 1, , , , , , n & ".", 1
        Next
    Next
Next
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关注官方微信,每天学会一个新技能

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

GMT+8, 2020-4-10 05:23 , Processed in 0.066287 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2020 Wooffice Inc.

   

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

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

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