2016-11-23 6 views
1

私の目標は、セルとすべてのプロパティと値を範囲の配列に保存し、このセルのすべてのプロパティと値を別のセルに書き戻すことです(コピー貼り付け機能のように、配列から貼り付ける)。ここでExcel vba:範囲の配列からセルにすべてのプロパティを割り当てます

は、簡単な試験手順です:

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にアクセスすることができ、配列の最初の要素インチ

しかし、この範囲を別の空のセルに書き込もうとすると、値が書き込まれるだけです。

配列のようにすべてのプロパティを書く方法シートからコピー/貼り付け?

+1

試し: 'Range_Grid(1).Copy ActiveSheet.Cells(4、1)それはように動作します' –

+0

感謝。 しかし、私は、配列に保存された範囲が実際に独立したエンティティとして保存されていないことを認識しました。つまり、シート上のセルへのポインタのようです。したがって、Set Range_Grid(1)= ActiveSheet.Cells(2、3)の行の後に、シート上のこのセルの値とプロパティを手動で変更して空のセルを取得した後、Range_Grid(1).Copy ActiveSheetを取得します。細胞(4,1)は細胞(4,1)も空にします... – BenDev

答えて

0

アレイの範囲からすべての書式設定を一度にExcelに戻す方法はありません。これには2つのオプションがあります: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 

残念ながらありますおそらく数十種類の書式設定を扱うことができます。

+0

ありがとうございました。私はすでに必要なときにそれらを取得するためにプロパティの別々の部分を保存することに基づいて、関数全体を書いてきました。だから私は完全な不動産ソリューションを探していた。私は本当に解決策ではないと思います。私はこの件について多くのフォーラムを赤字にしています。 – BenDev

0

コピーと貼り付け機能を使用します。

Sub Test() 

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

End Sub 
+0

他のありがとう。しかし実際にはここではシートからシートにコピー/ペーストするだけです。私の目標は、シートからアレイにグリッドを保存し、その後、元のシートが何であっても、アレイからシートに「ペーストバック」することでした。これは、コードによってシートに何かが書き込まれたときに、元に戻すスタックがExcelによって自動的に消去されるため、アンドゥアンドリドゥ機能のエンジンを管理することです。 私はすでに、値、テキスト、色などのプロパティはほとんどありませんが、プロパティを個別に保存することで機能します。 – BenDev

関連する問題