[[20130517141031]] 『エクセル マクロ空白行を飛ばして、別シートに貼り付けたい』2007(ぴん)  ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『エクセル マクロ空白行を飛ばして、別シートに貼り付けたい』2007(ぴん)

Sheet1に関数で、データをもってきているものを、空白の部分は、飛ばしてSheet2に貼り付けしたいのですが?

Sheet1
  A   B   C   D  E
1 あ  い  う   え  お
2 か  き  く  け こ  
3
4  さ   し  す  せ  そ
.
.
Sheet2
  A   B   C   D  E
1 あ  い  う   え  お
2 か  き  く  け こ  
3 さ   し  す  せ  そ
4
.

Sheet1のセルには関数を使用しているので削除はしないでほしいんですが?


 たとえば

 Sub Sample()
    Dim c As Range
    Dim z As Long
    Dim v() As Variant
    Dim i As Long
    Dim k As Long

    With Sheets("Sheet1")
        z = .UsedRange.Row + .UsedRange.Rows.Count - 1 '最終行番号
        ReDim v(1 To z)
        For i = 1 To z
            'A〜Eまで空白なら処理しない
            If WorksheetFunction.CountBlank(.Range("A" & i & ":E" & i)) < 5 Then
                k = k + 1
                v(k) = .Range("A" & i & ":E" & i).Value
            End If
        Next
    End With

    ReDim Preserve v(1 To k)

    With Sheets("Sheet2")
        .Columns("A:E").ClearContents
        .Range("A1").Resize(k, 4).Value = WorksheetFunction.Transpose(WorksheetFunction.Transpose(v))
        .Select
    End With

 End Sub

 (ぶらっと)

ありがとうございました。
思っていた通りになりました。
(ぴん)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.