8 列のデータ AH を含むスプレッドシートがあります。それぞれの長さが異なり、削除する必要がある "0" の値が含まれている可能性があります。ループでこれを行うのではなく、.Find メソッドを使用してこれを実行しようとしていますが、find メソッドが空のセル (列が最大長の列よりも短い) をゼロとして分類し続けるため、行き詰まります。関数がこれらのセルの 1 つを見つけると、特定のセルを選択するのではなく、その列の上部にあるセルを選択して削除します。0 以外の値を使用してコードを使用しようとしましたが、正常に動作するため、空のセルを "0" として分類する Excel に問題があります。
値「0」を具体的に検索する方法はありますか? str(0) を使用して文字列値「0」を指定しようとしましたが、同じ結果が得られました。私のコードのサブセットは次のとおりです。
Row = wf.Max(Cells(Rows.Count,1).End(xlUp).Row, Cells(Rows.Count,8).End(xlUp_.Row
'Originally I had zero = 0 or "0" but I tried the following to get a string version
zero = Str(0)
zerofix = Right(zero,1)
Do While Check_Val_Existence(zerofix,Row) = True
Set aCell = ActiveSheet.Range(Cells(1,1), Cells(Row,8)).Find(What:=zerofix,LookIn:=xlValues)
If Not aCell Is Nothing Then
aCell.Delete Shift:=xlUp
End If
Loop
どこ
Function Check_Val_Existence(ByVal Srch, ByVal Row) As Boolean
Dim rFnd As Range
Set rFnd = ActiveSheet.Range(Cells(1,1), Cells(Row,8)).Find(What:=Srch)
If Not rFnd Is Nothing Then
Check_Val_Existence = True
Else
Check_Val_Existence = False
End If
End Function
コードをループして各列を順番に検索する必要はありませんが、それを行う必要があるように見え始めています。