Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2497|回复: 5

复制单元格格式和公式

[复制链接]
发表于 2019-3-19 14:37 | 显示全部楼层 |阅读模式
如附件,点击add style 按钮,则将A4:V13的单元格区域复制到A14, 但是如果A4:V13里有填写内容,复制过去后,要清除内容,但是需要保留U列的公式.
且A4:V13 不是固定的,有可能会插入行和列,但是插入行和列后不影响复制, 另外,点击一次,则复制一次,且A列所在的合并单元格自动填充序号2,再点击一次又复制一次,A列单元格序号自动填充3,以此类推.
我现在有两个问题解决不了
1, 不能自动填充序号
2,复制过去的单元格,要么就是全部连填写的内容一起复制,要么就是全部没有.连公式也没有.

请大神帮忙解决

test.zip

29.33 KB, 下载次数: 4

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2019-3-19 15:11 | 显示全部楼层
Sub test()
    Dim x As Range, i
        
    '求最后一行的行号i
    Set x = Range("a4").MergeArea
    i = x.Row + x.Count - 1
   
   
    Set x = Range("a4:v" & i)
    On Error Resume Next
    x.Offset(0, 1).SpecialCells(xlCellTypeConstants).ClearContents
    On Error GoTo 0
    x.Copy Cells(i + 1, 1)
   
End Sub
回复

使用道具 举报

 楼主| 发表于 2019-3-20 17:28 | 显示全部楼层
本帖最后由 keenzhou 于 2019-3-20 17:30 编辑

查询搜索之后已解决,不过代码看起来很凌乱, 不知道还有没简化空间,代码如下
Sub Addstyle()

With Range("a4").CurrentRegion
rg = .Cells(.Count).Columns
End With

With Range("a4", "rg" & Range("a4").MergeArea.Count + 3).Copy
Range("a10000").End(xlUp).Offset(1, 0).PasteSpecial


End With
x = Range("a10000").End(xlUp).Row

Range(x & ":" & x + Range("a4").MergeArea.Count).Select
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Selection.ClearContents


End Sub
回复

使用道具 举报

 楼主| 发表于 2019-3-20 17:30 | 显示全部楼层
爱疯 发表于 2019-3-19 15:11
Sub test()
    Dim x As Range, i
        

谢谢版主,学习了半天,已解决,就是代码有点乱
回复

使用道具 举报

发表于 2019-3-20 17:47 | 显示全部楼层
keenzhou 发表于 2019-3-20 17:30
谢谢版主,学习了半天,已解决,就是代码有点乱

过段时间自己写的代码,也许自己还要看好一会儿才看明白是做啥的

所以我觉得,只要写得好读就好了
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 10:12 , Processed in 0.277466 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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