Function HasStrike(Rng as Range) As Boolean
HasStrike = Rng.Font.Strikethrough
End Function
カスタム関数を使用して、列に取り消し線があるかどうかを確認しています。列に取り消し線がある場合、ブール値が返され、行が削除されます。ただし、#VALUE エラーが発生します。私がチェックしている列には、「MASS」という単語しかありません。何が起こっているのかわからない。
Function HasStrike(Rng as Range) As Boolean
HasStrike = Rng.Font.Strikethrough
End Function
カスタム関数を使用して、列に取り消し線があるかどうかを確認しています。列に取り消し線がある場合、ブール値が返され、行が削除されます。ただし、#VALUE エラーが発生します。私がチェックしている列には、「MASS」という単語しかありません。何が起こっているのかわからない。
セルの内容に書式が混在している場合、関数は #VALUE を返します。
「問題のある」入力セルの 1 つを選択し、[セルの書式設定] >> [フォント] タブに移動します。「取り消し線」がチェックされていますか、それとも以下のようになっていますか? これは、書式が混在していることを示します。
これを試してみてください:
Function HasStrike(Rng As Range) As Boolean
Dim v
Application.Volatile '<< EDIT: added this
On Error Resume Next
v = Rng.Font.Strikethrough
On Error GoTo 0
HasStrike = v Or IsNull(v)
End Function