ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求Excel VBA代码:生成电子印章

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-7 06:05 | 显示全部楼层
很好,正合我意,谢谢你,费心了
说实话,手工制作,这个我会,无论ppt、word和excel,基本操作,我都可以。
也不瞒你说,这三个软件,我的使用经历也有好几年,
但以前,我都是用纯手工操作,自从学了VBA我就迷上了;
但是年纪大了,只是一种爱好,记性差,反应慢,学的东西不是很多,但足够应付平时工作;
对VBA我情有独钟,不忍放弃,幸亏遇上了你们这些热心人,
否则,我可能永远不会;
我们有专业的知识和基础,
只是下载了你们的一些精彩实例之后,
加以揣摩、修改和仿造,引进自己的工作当中;
录制宏,我也会一点,
不怕你笑话,复杂的,也就不会了
所以,再感谢你的同时,恳请将录制过程以动画的方式,传给我看看,我想学学。
再次感谢,
谢谢,谢谢!!

TA的精华主题

TA的得分主题

发表于 2015-11-7 08:05 | 显示全部楼层
weiyingde 发表于 2015-11-7 06:05
很好,正合我意,谢谢你,费心了
说实话,手工制作,这个我会,无论ppt、word和excel,基本操作,我都可以 ...

动画过程如下,录制宏有个缺点就是它把所有默认的属性都弄进来了,所以录制出来的代码无关内容太多,我们可以按F8单步执行
看一下哪些属性是我们要使用到的,然后引进自己的代码当中,把无关紧要的删除就是了,主要是学习属性的该怎么书写,VBA当
中对象、属性、方法太多,人不可能记得那么多属性方法,但是要用到的时候知道怎么去找就行
如果动画看不明白,可以参考百度上面的教程,网址如下:
http://jingyan.baidu.com/article/67508eb4daade99cca1ce4a7.html

124.gif

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-11-7 09:23 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-7 09:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
是的,我也有同感,请你也看看

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-7 14:00 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-7 19:04 | 显示全部楼层
huang1314wei 发表于 2015-11-7 08:05
动画过程如下,录制宏有个缺点就是它把所有默认的属性都弄进来了,所以录制出来的代码无关内容太多,我们 ...

我想把每一个印章组合成一个整体,加了几句代码,但没有效果,不知错在哪里,请huang1314wei朋友给我看看,谢谢了

For j = 3 To rw
    If shp.TopLeftCell.adress = Range("D" & j).Address Or shp.Top = Range("D" & j).Top + 15 Or shp.Top = Range("D" & j).Top + Range("D" & j).Width - 20 Then
    shp.Select
    Selection.ShapeRange.Group
    End If
  Next

TA的精华主题

TA的得分主题

发表于 2015-11-7 19:37 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2015-11-7 22:17 | 显示全部楼层
weiyingde 发表于 2015-11-7 19:04
我想把每一个印章组合成一个整体,加了几句代码,但没有效果,不知错在哪里,请huang1314wei朋友给我看看 ...

只给你提供一个示例代码哈,剩下的你依葫芦画瓢,我以D3单元格的当中的图形为例,代码如下:
Sub 组合图形()
    Dim myshape As Shape, i%, arr()
    For Each myshape In Sheet1.Shapes
        If myshape.TopLeftCell.Address = Range("D3").Address Then
            i = i + 1
            ReDim Preserve arr(i - 1)
            myshape.Name = Range("D3").Address & i
            arr(i - 1) = Range("D3").Address & i
        End If
    Next
    Sheet1.Shapes.Range(arr).Group
End Sub


另外,关于23楼提的问题,主要是因为那个图像超出了C3单元格范围,把C3单元格图片调整位置,使它的左上角位于C3单元格即可

TA的精华主题

TA的得分主题

发表于 2015-11-7 22:18 | 显示全部楼层
gftrewq 发表于 2015-11-7 09:23
第一个图像好像不对

主要是因为那个图片超出了C3单元格范围,把C3单元格图片调整位置,使它的左上角位于C3单元格即可,因为我提取的时候使用的是topleftcell属性,当时没有注意,感谢提醒!

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-8 14:13 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
真不好意思,我将你给的代码,稍作修改,如下:
Sub 组合图形()
    Dim myshape As Shape, i%, arr()
  rw = Sheets("图章参数").Range("a65536").End(xlUp).Row
  For j = 3 To rw
    For Each myshape In Sheet1.Shapes
        If myshape.TopLeftCell.Address = Range("D" & j).Address Then
            i = i + 1
            ReDim Preserve arr(i - 1)
            myshape.Name = Range("D" & j).Address & i
            arr(i - 1) = Range("D" & j).Address & i
        End If
    Next
    Sheet1.Shapes.Range(arr).Group
   Next
End Sub
目的是希望循环,可是仍然没有结果,是不是因为 Preserve的原因呢?还是因为其他原因。
得到你的帮助太多,真不好意思再缠你,可是……
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

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

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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