• ベストアンサー

整数行を残し小数点の行を削除するには?

エクセルで整数行を選びそれ以外を削除することが出来ますか? C列に測定時間があり、整数秒のみ取り出すマクロを作成しようとしているのですが、わかりません。 教えていただきたいのです。詳しい方よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#203218
noname#203218
回答No.2

一例です。 行を削除する場合は最終行側から行うのが基本となります。 添付画面ではC列データに途中で空白は無い事になっていますが、念のため空白セルを除外するようにしています。 Sub test() Dim i As Integer Dim MaxRow As Integer 'C列最終行取得 MaxRow = Cells(Rows.Count, 3).End(xlUp).Row 'C列セルの値がintで整数にした値と同じ場合は整数、他は小数点を含む。小数点を含む場合は行削除 For i = MaxRow To 1 Step -1 If Cells(i, 3) <> "" Then If Int(Cells(i, 3)) = Cells(i, 3) Then Rows(i).Delete Shift:=xlShiftUp End If Next End Sub

udonnteisyoku
質問者

お礼

回答有難うございました。参考になりました。

udonnteisyoku
質問者

補足

If Int(Cells(i, 3)) = Cells(i, 3) Then でデバックが出てしまうのですが。

その他の回答 (3)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

簡単に sub macro1()  dim Target as range  dim s as string  set target = range("A2:O" & cells(rows.count, 1).end(xlup).row)  s = activesheet.name  worksheets.add  range("B2").formula = "=INT(" & s & "!C3)=" & s & "!C3"  target.advancedfilter action:=xlfiltercopy, criteriarange:=range("B1:B2"), copytorange:=range("A3"), unique:=false  range("2:2").delete shift:=xlshiftup end sub ぐらいで。

udonnteisyoku
質問者

お礼

回答ありがとうございます。 

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! >C列に測定時間があり、 とありますので、画像通りC3セル以降のデータをSheet2のA列に表示する一例です。 Sheetモジュールにしていますので、Sheet1のSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, cnt As Long Worksheets("Sheet2").Range("A:A").ClearContents For i = 3 To Cells(Rows.Count, 3).End(xlUp).Row If Cells(i, 3) * 10 Mod 10 = 0 Then cnt = cnt + 1 Worksheets("Sheet2").Cells(cnt, 1) = Cells(i, 3) End If Next i End Sub 'この行まで ※ 上記コード内の >If Cells(i, 3) * 10 Mod 10 = 0 Then は >If Cells(i, 3) Mod 1 = 0 Then でOKだと思ったのですが、 望んでいた結果になりませんでしたので、敢えて10倍した数を10の除算の余りがあるかどうか? とやってみました。 なぜ >If Cells(i, 3) Mod 1 = 0 Then ではダメなのか当方にも理由が判りませんが、この程度でごめんなさいね。m(_ _)m

udonnteisyoku
質問者

お礼

回答有難うございました。勉強になりました。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

小数点の付いた数字のみ削除したいなら、データ範囲を選択し、Ctrl+Hで置換ダイアログを出し、検索する文字列に「*.*」を入力して「すべて置換」してください。 データを詰めて表示したなら、その選択状態のままCtrl+Gでジャンプダイアログを出し、「セル選択」から「空白セル」にチェックを入れ、右クリックから「削除」を選択し「上方向にシフト」にチェックを入れ「OK」してください。 マクロにする必要があるなら上記の操作を「マクロの記録」で記録してみて下さい。

udonnteisyoku
質問者

お礼

回答いただき有難うございます。置換の仕方勉強になりました。有難うございます。

関連するQ&A