vba中怎么复制文本格式内容?

  • excel复制表格怎么保留行和列?我们都知道excel表格是由一个个的行和列组成的表格,其中所有的列用字母A/B/C...表示,而行则由阿拉伯数字1、2、3...组成,我们平时在复...

Excel VBACopy方法进行复制粘贴,往往会导致粘贴的数据没有了行高和列宽。那么,当我们要进行复制粘贴时,如何保证粘贴的数据保留原有的格式(包括行高列宽都不能变)

笔者以一个模板设计为例进行说明。

根据模板表生成表格的效果如图2所示。

使用Copy方法复制粘贴,代码如下所示:

'横向复制1/纵向复制4---粘贴份数由扩展区域Resize(1, 12)决定

运行代码效果如图3所示。


粘贴时为了保证行高和列宽一同被复制,可以先整行使用Copy方法进行复制粘贴,这样就可以保证行高一同被复制;使用PasteSpecial方法选择性粘贴,参数Paste设置为xlPasteColumnWidths即可保证列宽一同被复制,参数Paste设置为xlPasteFormats则只粘贴格式而不粘贴数据。

为了能一次性复制多份,粘贴区域的选择很重要,粘贴区域的行数=样本区域行数×横向份数,粘贴区域的列数=样本区域列数×纵向份数。比如示例中正文区样本为23列,现需要横向5/纵向4份共20份粘贴正文区,则粘贴区域应为2×5=10行、3列×4=12列,即1012列的区域,所以示例粘贴区域为.Cells(x + 3, "B").Resize(10, 12)。如果粘贴区域设置不当将会出现不可意料的效果,请自行测试。

好了,按照上述方法将代码修改成如下所示,运行后即可得到如图2所示效果。

Sub 复制全部格式包括行高列宽()

'横向复制5/纵向复制4

我要回帖

更多关于 vba复制一行 的文章

 

随机推荐