簡體   English   中英

Excel vba:將所有屬性分配給范圍數組中的單元格

[英]Excel vba : assign all properties to a cell from an array of range

我的目標是將一個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)原始范圍的每個屬性,如字體樣式,格式,顏色,注釋,等等..

但是當我嘗試將此范圍從數組寫入另一個空單元格時,它只會寫入值...

知道怎么寫數組中的所有屬性,就好像它是從一張到另一張的復制/粘貼一樣?

無法一次將所有格式從數組中的范圍移回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

不幸的是,您可能希望在任何給定時間處理十幾種類型的格式...

還有另一種選擇:使用Copy和PasteSpecial函數。

Sub Test()

    ActiveSheet.Cells(2, 3).Copy
    ActiveSheet.Cells(4, 1).PasteSpecial(xlPasteAll)

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM