|
▼piropiro さん:
確認3 も 確認4 も、どちらも 39 だったということですか?
そうであれば、なぞは謎のまま・・・
私の目論見は、確認3 は 39、でも 確認4 は 49 と出てほしかったんです。
piropiroさんの目視確認では、39行削除のはず。
でも、piropiroさんのコードや私のMATCHを使ったコードでは49行削除されてしまう!
こういうことですね。
で、私の推論は、削除行は 49 が正しい! というものです。
つまり、NA とあきらかに記入されている行の他に、目には見えないけど、実は NA という
値を持つセルが 10行あって、それらも『正しく』削除して、49行削除。
じゃぁ、その目に見えない NA って何かということですけど、たとえば
セルの表示書式が ;;; だった場合、NA と入っているのに空白表示。
なので、人間は、見た目では気が付かない。
それを確認するために 確認3 と 確認4 を試してもらったんですが・・・
そうですかぁ・・どちらも 39 ですかぁ・・・
だんだん心苦しくなってくるんですが、以下を実行するとどんなメッセージがでますか?
Sub 確認5()
Dim a As Range
Dim r As Range
Dim c As Range
Dim f As Range
Dim x As Long
'使用領域の K列から最終列までの列数
x = Range("A1", ActiveSheet.UsedRange).Columns.Count - 10
'判定対象領域
Set a = Range("I4", Range("I" & Rows.Count).End(xlUp)).Offset(, 2).Resize(, x)
Set c = a.Find(What:="NA", LookAt:=xlWhole, LookIn:=xlFormulas)
If c Is Nothing Then
MsgBox "領域に NA はありません"
Exit Sub
End If
Set f = c
Do
If c.Value <> c.Text Then
If r Is Nothing Then
Set r = c
Else
Set r = Union(r, c)
End If
End If
Set c = a.FindNext(c)
Loop While c.Address <> f.Address
If Not r Is Nothing Then
MsgBox "以下のセルを確認してください" & vbLf & Replace(r.Address, ",", vbLf)
Else
MsgBox "NA セルの見た目と実際の値に違いはありませんでした"
End If
End Sub
|
|