2016-09-07 14 views

答えて

0

何が

enter image description here

Sub TestResizeAndMergeAreas() 
    Dim r As Range 

    Worksheets.Add 

    Range("C3:D6,F3:G6,I3:J6").Value = "Test Data" 

    Range("A1:Z20").Select 

    On Error Resume Next 
    Set r = Selection.SpecialCells(xlCellTypeConstants, 23) 
    On Error GoTo 0 

    If Not r Is Nothing Then 
     Debug.Print "Before:", r.Address 

     ResizeAndMergeAreas r, -1, 1, -1, 1 

     Debug.Print "After:", r.Address 
    End If 

    r.Select 
End Sub 

Sub ResizeAndMergeAreas(ByRef Target As Range, x1 As Long, x2 As Long, y1 As Long, y2 As Long) 
    Dim rArea As Range 

    For Each rArea In Target 
     Set Target = Range(Target, rArea) 
    Next 

    Set Target = Target.Offset(x1, y1).Resize(Target.Rows.Count + x2 + (x1 * -1), Target.Columns.Count + y2 + (y1 * -1)) 

End Sub 
+0

可能である自身でこの作業がI'発生する必要があります私のワークブックと新しいものでそれを試しましたが何も起こりません、何が間違っていますか? – mrkrister

+0

私はこれを実行すると、C3:D6; F3G6; I3.J6とA1:Z20 – mrkrister

+0

の選択で書かれた新しいシート「テストデータ」が完成します。あなたの忍耐力に感謝しています。しばらくの間、私はそれを理解することに近く、カップルのテストと編集をした後に私はやっているかもしれませんが、これの最終結果はまさに私が何をしたかです。ありがとうございました! – mrkrister