0
Function HasStrike(Rng as Range) As Boolean
HasStrike = Rng.Font.Strikethrough
End Function

カスタム関数を使用して、列に取り消し線があるかどうかを確認しています。列に取り消し線がある場合、ブール値が返され、行が削除されます。ただし、#VALUE エラーが発生します。私がチェックしている列には、「MASS」という単語しかありません。何が起こっているのかわからない。

ユーザーのスクリーンショット

4

1 に答える 1

0

セルの内容に書式が混在している場合、関数は #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
于 2015-02-27T00:14:52.460 に答える