Excel VBA質問箱 IV

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

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


7769 / 76734 ←次へ | 前へ→

【74550】Re:マクロを用いたエラー値の削除
回答  argon  - 13/7/21(日) 23:49 -

引用なし
パスワード
   γさん

回答有り難うございます。
返信が遅れてしまい申し訳ありません。

以前の解答で検出用セルに1を立てるということで、
マクロ作成にトライしておりました。

作成したマクロを以下に示しますが、
これだと、A列が1の時にしか1を立ててくれませんでした。

>なお、上記ではerror かどうかの判定はできているものとしていますが、
>ここも数式で判定するということなら、確認が必要な点があります。
>> Z座標が(最大値と最小値の差)*2/3+最小値よりも大きいこと
>この最大、最小とはどのような範囲での最大最小なのですか?
>全ての範囲ですか?
>それとも、特定の範囲に絞ってということはありますか
>(例:x座標データ番号が1のものに限定するとか)

検出範囲としては、Z座標すべて(E列全て)の範囲です。

>考え方は、
>(1)E列がerrorになっている時の、B列の値(y座標番号)を
>  Dictionaryに登録する。

Dictionaryに登録という手法自体知らなかったです...。
次回に活かせるよう精進します。


-----------作成したマクロのコード-----------

Sub エラー値検出()
'
' エラー値検出 Macro
' 不正値を削除
'

 Dim lRow As Long
 Dim i As Long
 Dim izmax As Long
 Dim izmin As Long
 Dim iz As Long
 Dim izval As Integer


Worksheets("Sheet1").Activate
  lRow = Cells(Rows.Count, 1).End(xlUp).Row
  izmax = Application.WorksheetFunction.Max(Cells(Rows.Count, 5).End(xlUp))
  izmin = Application.WorksheetFunction.Min(Cells(Rows.Count, 5).End(xlUp))
  iz = izmin + ((izmax - izmin) / 3)
  Application.ScreenUpdating = False

  For i = lRow To 2 Step -1
   If Cells(i, 5).Value > iz And Cells(i, 1).Value = 1 Then
    Cells(i, 6).Value = 1
   End If
  Next i

  Application.ScreenUpdating = True

  For i = lRow To 2 Step -1
   If Cells(i, 6).Value = 1 Then
    izval = Cells(i, 2).Value
   End If

   If Cells(i, 2).Value = izval Then
    Cells(i, 7).Value = 1
   End If
  Next i
'

End Sub

6 hits

【74535】マクロを用いたエラー値の削除 argon 13/7/18(木) 19:58 質問
【74539】Re:マクロを用いたエラー値の削除 γ 13/7/19(金) 8:45 発言
【74540】Re:マクロを用いたエラー値の削除 γ 13/7/19(金) 23:47 発言
【74550】Re:マクロを用いたエラー値の削除 argon 13/7/21(日) 23:49 回答
【74551】Re:マクロを用いたエラー値の削除 γ 13/7/22(月) 20:05 発言
【74556】Re:マクロを用いたエラー値の削除 argon 13/7/23(火) 22:03 発言
【74559】Re:マクロを用いたエラー値の削除 γ 13/7/24(水) 8:10 発言

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