Excel VBA質問箱 IV

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

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


9660 / 13646 ツリー ←次へ | 前へ→

【26156】計算されないセルを上に詰める方法 へっぽこ侍 05/6/24(金) 20:38 質問[未読]
【26157】Re:計算されないセルを上に詰める方法 MARBIN 05/6/24(金) 21:40 回答[未読]
【26158】Re:計算されないセルを上に詰める方法 MARBIN 05/6/24(金) 21:45 回答[未読]
【26160】Re:計算されないセルを上に詰める方法 へっぽこ侍 05/6/24(金) 22:37 質問[未読]
【26165】Re:計算されないセルを上に詰める方法 ponpon 05/6/25(土) 8:27 発言[未読]
【26166】Re:計算されないセルを上に詰める方法 ponpon 05/6/25(土) 8:43 発言[未読]
【26173】Re:計算されないセルを上に詰める方法 へっぽこ侍 05/6/25(土) 18:48 お礼[未読]
【26197】Re:計算されないセルを上に詰める方法 ponpon 05/6/26(日) 23:22 発言[未読]

【26156】計算されないセルを上に詰める方法
質問  へっぽこ侍  - 05/6/24(金) 20:38 -

引用なし
パスワード
   式の入ったセルで、式に必要な値がなかったり、またはその他の要因で
計算結果が表示されないセルを列で上に詰めたいのですが、できるでしょうか?

どなたかご教示下さい。

【26157】Re:計算されないセルを上に詰める方法
回答  MARBIN  - 05/6/24(金) 21:40 -

引用なし
パスワード
   数式以外も""だったら削除されちゃいますが・・・。
スペースが入っている、あるいは計算結果が" "だっ
たりすると削除されません。

数式のみに対応させるのでしたらもう一工夫必要です。

Sub tume()
Dim i As Long
Dim l As Long
 l = Worksheets(1).Cells(65536, 1).End(xlUp).Row
  For i = l To 1 Step -1
  With Worksheets(1).Cells(i, 1)
  If .Value = "" Then .EntireRow.Delete
  End With
  Next i
End Sub

【26158】Re:計算されないセルを上に詰める方法
回答  MARBIN  - 05/6/24(金) 21:45 -

引用なし
パスワード
   列で、でしたね。
↓のように置き換えてください。

If .Value = "" Then .Delete Shift:=xlUp

【26160】Re:計算されないセルを上に詰める方法
質問  へっぽこ侍  - 05/6/24(金) 22:37 -

引用なし
パスワード
   ▼MARBIN さん:
>列で、でしたね。
>↓のように置き換えてください。
>
> If .Value = "" Then .Delete Shift:=xlUp

早速のご教示ありがとうございます。
具体的に言いますと、N/A表示がされまして
計算されません。計算式はセルに入っております。

下の計算式のSub tume()の()には何がはいるのでしょうか?

Worksheets(1).の(1)にはsheet名がはいるんですよね?

マクロは初心者なので、ご迷惑おかけいたしますが、よろしくお願いいたします。


Sub tume()
Dim i As Long
Dim l As Long
 l = Worksheets(1).Cells(65536, 1).End(xlUp).Row
  For i = l To 1 Step -1
  With Worksheets(1).Cells(i, 1)
  If .Value = "" Then .EntireRow.Delete
  End With
  Next i
End Sub

【26165】Re:計算されないセルを上に詰める方法
発言  ponpon  - 05/6/25(土) 8:27 -

引用なし
パスワード
   こんばんは。ponponです。

ISERR関数でエラ−かどうか調べたらいかがでしょう?

削除するのは、A列のN/Aのセルだけでしょうか?
どこの列か教えてね?
それとも、その行すべてでしょうか?
それによって、マクロも違います。
関数を使ってます。
試してみてください。

Sub test()
   Dim myR As Range
   With Worksheets(1)
    Set myR = .Range("A1", .Range("A65536").End(xlUp))
    With myR.Offset(0, 26)
      .Value = "=if(ISERR(A1),1,"""")"
      On Error Resume Next
       .SpecialCells(xlCellTypeFormulas, 1).Offset(0, -26).Delete Shift:=xlUp
              ’↑ N/Aのセルだけ削除
      '.SpecialCells(xlCellTypeFormulas, 1).EntireRow.Delete Shift:=xlUp
              ’↑ 行削除
      
      On Error GoTo 0
      .ClearContents
    End With
   End With

End Sub

【26166】Re:計算されないセルを上に詰める方法
発言  ponpon  - 05/6/25(土) 8:43 -

引用なし
パスワード
   おはようございます。
specialcellsを使う方法もあります。
下のコードは、sheet1にあるエラーのセルやその行を削除します。
試してみてください。

Sub test2()

  With Worksheets("sheet1")
   On Error Resume Next
   .UsedRange.SpecialCells(xlCellTypeFormulas, xlErrors).EntireRow.Delete shift:=xlUp
            ↑ 行削除
   '.UsedRange.SpecialCells(xlCellTypeFormulas, xlErrors).EntireRow.Delete shift:=xlUp
            '↑エラーのセル削除
   On Error GoTo 0
  End With

End Sub

【26173】Re:計算されないセルを上に詰める方法
お礼  へっぽこ侍  - 05/6/25(土) 18:48 -

引用なし
パスワード
   ▼ponpon さん:
>おはようございます。
>specialcellsを使う方法もあります。
>下のコードは、sheet1にあるエラーのセルやその行を削除します。
>試してみてください。
>
>Sub test2()
>
>  With Worksheets("sheet1")
>   On Error Resume Next
>   .UsedRange.SpecialCells(xlCellTypeFormulas, xlErrors).EntireRow.Delete shift:=xlUp
>            ↑ 行削除
>   '.UsedRange.SpecialCells(xlCellTypeFormulas, xlErrors).EntireRow.Delete shift:=xlUp
>            '↑エラーのセル削除
>   On Error GoTo 0
>  End With
>
>End Sub

こんにちは。ponpon さん、熱意あるご教示ありがとうございました。
おかげさまで、思うとおりに表が完成いたしました。

また後ほどVBAで質問があるかと思いますが、よろしくお願いいたします。

【26197】Re:計算されないセルを上に詰める方法
発言  ponpon  - 05/6/26(日) 23:22 -

引用なし
パスワード
   こんばんは。
今頃気づきました。
同じこと書いていました。申し訳ありませんでした。
>Sub test2()

>  With Worksheets("sheet1")
>   On Error Resume Next
>   .UsedRange.SpecialCells(xlCellTypeFormulas, xlErrors).EntireRow.Delete shift:=xlUp
>            ↑ 行削除
   '.UsedRange.SpecialCells(xlCellTypeFormulas, xlErrors).Delete shift:=xlUp
            '↑エラーのセル削除
>   On Error GoTo 0
>  End With

>End Sub

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