Excel-查找范围中的空单元格

Excel-查找范围中的空单元格,excel,vba,Excel,Vba,我正试图找到一种方法,通过搜索Excel电子表格列中的一系列单元格来查找任何空白单元格。 该列将包含“订购数量”,如果该列保持为空,则稍后会在另一个系统中抛出错误。如果我现在可以检测到错误,我可以将该工作表标记为失败,以便手动处理或与客户一起查询 我尝试了各种方法,但一直收到错误“从类型'Object(,)'转换为类型'String'无效”,或者它将忽略代码 第一位代码查找工作表中最后使用的行,因此以下代码仅从第2行第8列查看第8列中最后使用的行: Dim rw As Integer = 1

我正试图找到一种方法,通过搜索Excel电子表格列中的一系列单元格来查找任何空白单元格。 该列将包含“订购数量”,如果该列保持为空,则稍后会在另一个系统中抛出错误。如果我现在可以检测到错误,我可以将该工作表标记为失败,以便手动处理或与客户一起查询

我尝试了各种方法,但一直收到错误“从类型'Object(,)'转换为类型'String'无效”,或者它将忽略代码

第一位代码查找工作表中最后使用的行,因此以下代码仅从第2行第8列查看第8列中最后使用的行:

Dim rw As Integer = 1
            Do Until xlNewWorkSheet.Cells(rw, 1).Value Is Nothing
                rw += 1
            Loop
            Dim last As String = rw - 1
            'Dim quantity As String

            Dim xlRange As Excel.Range = Nothing
            xlRange = xlNewWorkSheet.Range(xlNewWorkSheet.Cells(2, 8), xlNewWorkSheet.Cells(last, 8))

            For Each qcell As Excel.Range In xlRange.Cells
                If qcell.Value <> "" Then
                    MsgBox("Empty value found in quantity...exiting...")
                End If
            Next
            With xlNewWorkSheet.Range("A1:Z100")
                'quantity = (.Range(.Cells(2, 8), .Cells(last, 8)).Value)
                'If quantity Is Nothing Then
                'MsgBox("Empty value found in quantity...exiting...")
                'Else
                .Range(.Cells(2, 1), .Cells(last, 1)).Value = (Cust + "_" + dt2)
                'End If

            End With
Dim rw作为整数=1
直到xlNewWorkSheet.Cells(rw,1)为止。值为零
rw+=1
环
最后变暗为字符串=rw-1
'将数量设置为字符串
将xlRange设置为Excel。范围=无
xlRange=xlNewWorkSheet.Range(xlNewWorkSheet.Cells(2,8),xlNewWorkSheet.Cells(最后,8))
对于每个qcell,在xlRange.Cells中显示为Excel.Range
如果qcell.Value为“”,则
MsgBox(“数量中发现空值…正在退出…”)
如果结束
下一个
使用xlNewWorkSheet.Range(“A1:Z100”)
'数量=(.Range(.Cells(2,8),.Cells(last,8)).Value)
“如果数量不算什么
'MsgBox(“数量中发现空值…正在退出…”)
”“否则呢
.Range(.Cells(2,1),.Cells(last,1)).Value=(Cust+“”+dt2)
"完"
以
理想情况下,我希望对任何其他异常的行和列进行进一步的错误检查,例如,我有时会得到带有#REF!在它们中,删除这些行会很好


提前谢谢。

这正是你可以适应的。如果有空单元格,请计数。如果计数为0,则表示一切正常。如果没有,那就是出了问题

Sub test()
Dim rng As Range
Dim TotalBlanks As Long
TotalBlanks = 0
Set rng = Range("A1").CurrentRegion 'change this with your target range

On Error Resume Next
TotalBlanks = rng.SpecialCells(xlCellTypeBlanks).Count
On Error GoTo 0

If TotalBlanks > 0 Then
    'there is blanks, so do what you want and exit or end
    Debug.Print "There is blanks"
    End
End If

'rest of code if there is not a single blank
Debug.Print "Everything is ok"
Set rng = Nothing

End Sub

如果我使用前面的数据示例运行上面的代码,我会得到输出


如果我使用前面的数据示例运行上面的代码,我会得到输出,它会退出

,您可以使用范围的
SpecialCells
属性一次查找空单元格而不循环。您好,Damian。我将如何在上面的代码中使用它?很有趣……这很有效,谢谢。我稍微修改了它,以找到我当前的代码,但它成功了