Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1753 / 13645 ツリー ←次へ | 前へ→

【72154】負の値のある行だけを削除したい 本山中 12/6/10(日) 7:03 質問[未読]
【72155】Re:負の値のある行だけを削除したい Yuki 12/6/10(日) 9:45 発言[未読]
【72159】Re:負の値のある行だけを削除したい 本山中 12/6/11(月) 5:55 お礼[未読]
【72156】Re:負の値のある行だけを削除したい ponpon 12/6/10(日) 10:00 発言[未読]
【72160】Re:負の値のある行だけを削除したい 本山中 12/6/11(月) 5:57 お礼[未読]

【72154】負の値のある行だけを削除したい
質問  本山中  - 12/6/10(日) 7:03 -

引用なし
パスワード
   F列の2行以下のセルには
セルF2:-2(-0.55%)
セルF3:+400(+0.57%)
などの形で、値が入力されています。
( )の左側の数値が負の場合、その行を削除する
方法を教えてください。
上記の場合なら、2行目は削除となり、3行目が
2行目に来る、という具合にしたいのです。
宜しくお願いいたします。

【72155】Re:負の値のある行だけを削除したい
発言  Yuki  - 12/6/10(日) 9:45 -

引用なし
パスワード
   ▼本山中 さん:
>F列の2行以下のセルには
>セルF2:-2(-0.55%)
>セルF3:+400(+0.57%)
>などの形で、値が入力されています。
>( )の左側の数値が負の場合、その行を削除する

こんにちは。
こんな感じでどうですか。

Sub Macro1()
  Dim strF  As String
  ' 検索値は下記から今は -2(…)を削除しています。  
  strF = "*(-*"  '-2(-0.55%)
          '  ↑が -
  strF = "-*"   '↑が -
  
  With Worksheets("Sheet1")
    .AutoFilterMode = False
    With .Range("F1:F" & Range("F" & .Rows.Count).End(xlUp).Row)
      .AutoFilter Field:=1, Criteria1:=strF
      .Offset(1).EntireRow.Delete
    End With
    .AutoFilterMode = False
  End With
End Sub

【72156】Re:負の値のある行だけを削除したい
発言  ponpon  - 12/6/10(日) 10:00 -

引用なし
パスワード
   おはようございます。
yukiさんからオートフィルターを使った回答がありますが、
私も久しぶりに作ったので・・

最初に"-"ではなく、()の中に"-"ですね。


Sub test()
 Dim myRow As Long, i As Long
 
 With Sheets("Sheet1")
  myRow = .Cells(.Rows.Count, "F").End(xlUp).Row
  For i = myRow To 2 Step -1
   If InStr(4, .Cells(i, "F").Value, "-", 1) > 0 Then
     .Cells(i, "F").EntireRow.Delete
   End If
  Next
 End With

End Sub

【72159】Re:負の値のある行だけを削除したい
お礼  本山中  - 12/6/11(月) 5:55 -

引用なし
パスワード
   ▼Yuki さん:
お礼が遅くなりました。申し訳ございません。
回答をありがとうございます。

>▼本山中 さん:
>>F列の2行以下のセルには
>>セルF2:-2(-0.55%)
>>セルF3:+400(+0.57%)
>>などの形で、値が入力されています。
>>( )の左側の数値が負の場合、その行を削除する
>
>こんにちは。
>こんな感じでどうですか。
>
>Sub Macro1()
>  Dim strF  As String
>  ' 検索値は下記から今は -2(…)を削除しています。  
>  strF = "*(-*"  '-2(-0.55%)
>          '  ↑が -
>  strF = "-*"   '↑が -
>  
>  With Worksheets("Sheet1")
>    .AutoFilterMode = False
>    With .Range("F1:F" & Range("F" & .Rows.Count).End(xlUp).Row)
>      .AutoFilter Field:=1, Criteria1:=strF
>      .Offset(1).EntireRow.Delete
>    End With
>    .AutoFilterMode = False
>  End With
>End Sub

【72160】Re:負の値のある行だけを削除したい
お礼  本山中  - 12/6/11(月) 5:57 -

引用なし
パスワード
   ▼ponpon さん:
回答をありがとうございます。
助かりました。

>おはようございます。
>yukiさんからオートフィルターを使った回答がありますが、
>私も久しぶりに作ったので・・
>
>最初に"-"ではなく、()の中に"-"ですね。
>
>
>Sub test()
> Dim myRow As Long, i As Long
> 
> With Sheets("Sheet1")
>  myRow = .Cells(.Rows.Count, "F").End(xlUp).Row
>  For i = myRow To 2 Step -1
>   If InStr(4, .Cells(i, "F").Value, "-", 1) > 0 Then
>     .Cells(i, "F").EntireRow.Delete
>   End If
>  Next
> End With
>
>End Sub

1753 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free