大家好,近日推出的VBA文章较多,仍是以代码方案的形式推出,在讲VBA代码时仍是以和EXCEL的操作相结合,结合代码的实例给大家讲解,这些代码都是精华中的精华,可以方便的利用,稍加修改就可以加以利用,形成自己的代码,解决自己的工作问题。今日给大家讲解如何在复制单元格区域时,仅复制单元格区域的数值,有下面方法加以利用。
一 :使用选择性粘贴
使用选择性粘贴功能并指定粘贴数值,如下面的代码所示。
Sub MyCopyPasteSpecial()
Sheet1.Range("A1").CurrentRegion.Copy
Sheet2.Range("A1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub
代码解析:
a) MyCopyPasteSpecial过程复制工作表Sheet1中A1单元格的当前区域的数值到工作表Sheet2的A1单元格所在区域中。
b) 第2行代码将Sheet1中A1单元格的当前区域进行复制。
c) 第3行代码使用选择性粘贴功能并指定粘贴数值,选择性粘贴数值仅复制了单元格区域的数值,单元格区域的格式(背景颜色、字体对齐格式和边框等)不会被复制。
二:除了使用上述Copy方法外,还可以使用直接赋值的方法,这种方法比较简单,可以节省内存的应用,如下面的代码所示。
Sub MyGetValueResize()
With Sheet1.Range("A1").CurrentRegion
Sheet3.Range("A1").Resize(.Rows.Count, .Columns.Count).Value = .Value
End With
End Sub
代码解析:
a) MyGetValueResize过程将工作表Sheet1中的A1单元格的当前区域的数值赋予工作表Sheet3的A1单元格所在的单元格区域。
b) 在对单元格区域直接赋值时,应保证源区域大小与目标区域的大小一致,如果源区域为动态的单元格区域,可使用Resize方法确定目标区域。
我们看看上面方法二的实例应用,代码截图:
运行结果:
今日内容回向:
1 语句Sheet2.Range("A1").PasteSpecial Paste:=xlPasteValues的意义是什么?
2 语句Sheet3.Range("A1").Resize(.Rows.Count, .Columns.Count).Value = .Value的意义是什么?
举报/反馈