アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

「整数行を残し小数点の行を削除するには?」の質問画像

A 回答 (4件)

一例です。


行を削除する場合は最終行側から行うのが基本となります。
添付画面では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

この回答への補足

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

補足日時:2013/05/19 22:32
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/05/19 23:22

簡単に


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

ぐらいで。
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/05/19 23:44

こんばんは!


>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
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/05/19 23:21

小数点の付いた数字のみ削除したいなら、データ範囲を選択し、Ctrl+Hで置換ダイアログを出し、検索する文字列に「*.*」を入力して「すべて置換」してください。



データを詰めて表示したなら、その選択状態のままCtrl+Gでジャンプダイアログを出し、「セル選択」から「空白セル」にチェックを入れ、右クリックから「削除」を選択し「上方向にシフト」にチェックを入れ「OK」してください。
マクロにする必要があるなら上記の操作を「マクロの記録」で記録してみて下さい。
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/05/19 22:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!