ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] word插入表格、图片适应2个问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-1-22 16:41 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
问题1:WORD插入表格,分2  列宽为8.5…..1行高为5cm.  10.8CM。。交叉进行,如何用VBA实现.然后每新插入,自动生成2行,都是按照这个模式增加。。
问题2:
选中表格,插入图片,图片自动适应设定的表格大小。如何用VBA实现。

QQ截图20150122164032.jpg

word插入表格、图片适应2个问题.rar

10.72 KB, 下载次数: 16

TA的精华主题

TA的得分主题

发表于 2015-1-23 17:01 | 显示全部楼层
如果你把行高改为“固定值”,图片插入后也应该是自适应的。

把你里面的代码改了,看里面的说明吧。
word插入表格、图片适应2个问题(回复).zip (692.52 KB, 下载次数: 62)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-1-24 12:11 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
csnAlex 发表于 2015-1-23 17:01
如果你把行高改为“固定值”,图片插入后也应该是自适应的。

把你里面的代码改了,看里面的说明吧。

你好,谢谢了。有些疑问。就是原来WORD是空白的,运行宏不会自动插入表格的吗?我的是07WORD版。然后图片插入表格,只适应了高,宽没有相应的填满单元格,或我想实现图片在适应单元格的时候,上下左右都留一点空白,请问这个能实现吗》?谢谢高手了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-1-24 12:13 | 显示全部楼层
csnAlex 发表于 2015-1-23 17:01
如果你把行高改为“固定值”,图片插入后也应该是自适应的。

把你里面的代码改了,看里面的说明吧。

哦,空白点时插入是要单独运行插入空表格的,谢谢。这个问题已经解决,烦请高手解决其他一点疑问

TA的精华主题

TA的得分主题

发表于 2015-1-26 14:28 | 显示全部楼层
  1. Sub 插入空表格()
  2. '
  3. ' 插入空表格 Macro
  4. ' 宏在 2015/1/23 Friday 由 刘小军 录制
  5. '
  6.     Dim mytb As Table, sH As Single, i As Integer, mr As Range
  7.    
  8.     '判断光标位置
  9.     If Selection.Information(wdStartOfRangeRowNumber) = -1 Then
  10.         
  11.         '不在表格内
  12.         Set mytb = ActiveDocument.Tables.Add(Selection.Range, 2, 2)
  13.         With mytb
  14.         .Columns.PreferredWidth = CentimetersToPoints(8.5)
  15.             .Style = "网格型"
  16.             .Rows.Alignment = wdAlignRowCenter  '表格居中
  17.             .Rows.HeightRule = wdRowHeightExactly                       '行高固定
  18.             .Rows(1).Height = CentimetersToPoints(5)                    '第一行高5厘米
  19.             .Rows(2).Height = CentimetersToPoints(0.8)                  '第二行高0.8厘米
  20.             .Range.ParagraphFormat.DisableLineHeightGrid = True         '取消网格对齐(不取消有时候图片上边有空白,下边一截看不到)
  21.             .Range.ParagraphFormat.Alignment = wdAlignParagraphCenter   '单元格内容水平居中
  22.             .Range.Cells.VerticalAlignment = wdCellAlignVerticalCenter  '单元格内容垂直居中
  23.             
  24.             '需要图片离开边框有一定空白增加下面几句------
  25.             .TopPadding = 2         '如果觉得空白不够,把2改为3、4试试
  26.             .LeftPadding = 2
  27.             .RightPadding = 2
  28.             .BottomPadding = 2
  29.             
  30.             '此时所有行都会稍微增加点高度,如果要重新改为确定的5厘米、0.8厘米,可以把上面的两行改为
  31.             '.Rows(1).Height = CentimetersToPoints(5)-2                    '第一行高5厘米
  32.             '.Rows(2).Height = CentimetersToPoints(0.8)-2                  '第二行高0.8厘米
  33.             '下面在表格内的部分也要做相应修改
  34.             '--------------------------------------------
  35.         End With
  36.         Set mytb = Nothing
  37.    
  38.     Else
  39.         '在表格内
  40.         Set mr = Selection.Range
  41.         Selection.InsertRowsBelow 2
  42.         Set mytb = Selection.Tables(1)
  43.         With mytb
  44.             i = Selection.Information(wdStartOfRangeRowNumber)
  45.             sH = .Rows(i).Height
  46.             If sH > 140 Then
  47.                 .Rows(i).HeightRule = wdRowHeightExactly
  48.                 .Rows(i).Height = CentimetersToPoints(0.8)
  49.                 .Rows(i + 1).HeightRule = wdRowHeightExactly
  50.                 .Rows(i + 1).Height = CentimetersToPoints(5)
  51.             Else
  52.                 .Rows(i).HeightRule = wdRowHeightExactly
  53.                 .Rows(i).Height = CentimetersToPoints(5)
  54.                 .Rows(i + 1).HeightRule = wdRowHeightExactly
  55.                 .Rows(i + 1).Height = CentimetersToPoints(0.8)
  56.             End If
  57.         End With
  58.         Set mytb = Nothing
  59.         mr.Select
  60.     End If
  61. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-1-26 17:13 | 显示全部楼层
csnAlex 发表于 2015-1-26 14:28

复制了这个代码后。运行插入表格。然后继续运行之前的插入图片代码,但图片还是没有实现左右两边离表格空一点点距离。比如说拿一寸的相片。左右会有比较大的空白部分。不知道原因。右边的效果才对,不要左边的效果。
QQ截图20150126171136.jpg

TA的精华主题

TA的得分主题

发表于 2015-1-28 10:04 | 显示全部楼层
选择图片后,增加了一个插入方式选择,你自己测试一下填充方式的效果。
word插入表格、图片适应2个问题(回复).zip (149.7 KB, 下载次数: 98)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-1-28 11:37 | 显示全部楼层
csnAlex 发表于 2015-1-28 10:04
选择图片后,增加了一个插入方式选择,你自己测试一下填充方式的效果。

除了感谢还是感谢,实在是太厉害了。!谢谢

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-1-29 16:41 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
csnAlex 发表于 2015-1-28 10:04
选择图片后,增加了一个插入方式选择,你自己测试一下填充方式的效果。

大神,问题又来了,静等指教:当文档行距设定为固定值时,插入图片适应表格的话图片会显示不全;行距为单倍,1.5.多倍的时候,图片显示就没有问题,请问这个有办法解决吗? 请看2个附图的不同效果。
jdfw1.gif
jdfw.gif

TA的精华主题

TA的得分主题

发表于 2015-2-3 11:32 | 显示全部楼层
sukigrape 发表于 2015-1-29 16:41
大神,问题又来了,静等指教:当文档行距设定为固定值时,插入图片适应表格的话图片会显示不全;行距为单 ...

            .Range.ParagraphFormat.DisableLineHeightGrid = True         '取消网格对齐(不取消有时候图片上边有空白,下边一截看不到)
在 Sub 插入空表格() 中上一句的下面加入下面一句
            .Range.ParagraphFormat.LineSpacingRule = wdLineSpaceSingle  '设为单倍行高
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-16 11:13 , Processed in 0.029057 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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