- ベストアンサー
EXCELでこの日付の間に空白のセルをいれたいんで
EXCELでこの日付の間に空白のセルをいれたいんですが どうやればいいですか? 300行位あります
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
回答No.1の記載忘れです。 空白セルの追加ではなく行の追加でしたら .Cells(mRow, "A").Insert Shift:=xlDown のところを .Rows(mRow).Insert に変更してください。
その他の回答 (6)
- NuboChan
- ベストアンサー率47% (785/1650)
VBAでのアプローチ。 Option Explicit Sub InsertBlankRows() Dim lastRow As Long Dim i As Long ' A列の最終行を取得 lastRow = Cells(Rows.Count, "A").End(xlUp).Row ' 下から上に向かって処理 For i = lastRow To 2 Step -1 ' 現在の行と1つ上の行の間に空白行がない場合 If Cells(i, 1).Value <> "" And Cells(i - 1, 1).Value <> "" Then ' 現在の行の上に空白行を挿入 Rows(i).Insert Shift:=xlDown End If Next i End Sub
- msMike
- ベストアンサー率20% (364/1804)
簡単に出来ますよ。 A列全体を選択(←出来ますか?)⇒Ctrl+Cをパシーッ(コピーの実行)⇒マウスの右クリック⇒[貼り付けのオプション]直下の[123](値)アイコンをツン オ・シ・マ・イ これでお好みの「日付の間に空白のセルを」挿入できますよッ! 》 300行位あります それっぽっちですか?問題ないです。ただし、1048576行もあっちゃダメですけど。
- kkkkkm
- ベストアンサー率66% (1719/2589)
回答No.2の追加です。 7日26日のように空白セルで囲まれているセルがある場合 冗長かもしれませんが B1に =IF(A1="","",COUNT($A$1:A1)) として下にコピー C1に =INDIRECT("A"& MATCH(ROW(B1),B:B,0)) として下にコピーしていったん途中の空白セルを詰めます D1に =C1 D2はそのまま D3に =IF(D2=INDIRECT("C" & ROW(A3)-(INT(ROW(A1)/2)+1)),"",INDIRECT("C" & ROW(A3)-(INT(ROW(A1)/2)+1))) として下にコピーすれば一つ飛ばしでデータが表示されます。
- SI299792
- ベストアンサー率47% (772/1616)
- kkkkkm
- ベストアンサー率66% (1719/2589)
回答No.1の追加です。 元のデータが17日26日のように空白セルで囲まれているところが無く間無しで連続で並んでいるのでしたら B1に =A1 として B2は飛ばして B3に =IF(B2=INDIRECT("A" & ROW(A3)-(INT(ROW(A1)/2)+1)),"",INDIRECT("A" & ROW(A3)-(INT(ROW(A1)/2)+1))) として下にコピーすれば 一つ飛ばしでデータが表示されますからコピーして値貼り付けすれば間に空白のセルができます。
- kkkkkm
- ベストアンサー率66% (1719/2589)
A列の全ての日付の間に空白セルを入れます。既に空白で囲まれている所はもとのままです(17日と26日のところ) Sheet1を本来のシート名に変更してください。 Sub Test() Dim mRow As Long, LastRow As Long With Sheets("Sheet1") LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row For mRow = LastRow To 2 Step -1 If .Cells(mRow, "A").Value <> "" And .Cells(mRow - 1, "A").Value <> "" Then .Cells(mRow, "A").Insert Shift:=xlDown End If Next End With End Sub
お礼
やったんですが何もなりませんでした