我有一个电子表格,其中包含8列数据A-H,每一列的长度都不相同,可能包含我需要删除的值“0”。我试图用.Find方法来做到这一点,但由于find方法一直将空单元(列的长度小于最大长度列)分类为零,因此我正在尝试使用这种方法。当函数找到其中一个单元格时,它会选择并删除该列顶部的单元格,而不是选择特定的单元格。我试过使用我的代码使用0以外的值,它工作正常,所以这是一个与Excel分类空单元格为“0”的问题。如何查找“0”值而不是空单元格
有没有一种方法来专门搜索值“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
我宁愿不通过代码必须循环并依次检索每列,但它开始看起来像我可能必须这样做。
你能否张贴一点样本数据? – MikeD 2012-08-08 07:50:56
我无法正确地格式化数据,但基本上我有8列数据,每个数据列可以包含任意数量的行(此时此行在234行和269行之间),其中都填充了数字。您可以通过在单元格中放置随机数字来创建虚拟数据,只需确保列的长度不同,并且散布的值为零。 – 2012-08-08 08:05:57