我的目标是将一个Cell及其所有属性和值保存在一个范围数组中,然后将该单元格的所有属性和值写回到数组中的另一个单元格(如复制粘贴函数,但从数组中粘贴) )。
这是一个简单的测试程序:
Sub Test()
Dim Range_Grid(1) As Range
Dim CellAdress As String
Dim i As Long
Set Range_Grid(1) = ActiveSheet.Cells(2, 3)
ActiveSheet.Cells(4, 1) = Range_Grid(1)
End Sub
所以这里在数组Range_Grid(1)的第一个元素中,我真的得到了全范围保存,我可以访问ActiveSheet.Cells(2,3)原始范围的每个属性,如字体样式,格式,颜色,评论等..
但是当我尝试将此范围从数组写入另一个空单元格时,它只会写入值...
知道如何从数组中编写所有属性,就好像它是从表到表的复制/粘贴一样吗?
答案 0 :(得分:0)
无法一次将所有格式从数组中的范围移回excel。这将为您提供两个选项:您可以像Scott Craner建议的那样在excel中复制,也可以单独复制每种类型的格式。例如,如果要复制值(这是默认值,因此是原始代码中复制的值)和单元格背景颜色,则可以使用以下代码:
Sub Test()
Dim Range_Grid(1) As Range
Set Range_Grid(1) = ActiveSheet.Cells(2, 3)
ActiveSheet.Cells(4, 1) = Range_Grid(1)
ActiveSheet.Cells(4, 1).Interior.ColorIndex = Range_Grid(1).Interior.ColorIndex
End Sub
不幸的是,您可能希望在任何给定时间处理十几种格式......
答案 1 :(得分:0)
还有另一种选择:使用Copy和PasteSpecial函数。
Sub Test()
ActiveSheet.Cells(2, 3).Copy
ActiveSheet.Cells(4, 1).PasteSpecial(xlPasteAll)
End Sub