【问题标题】:Excel - Looking for empty cell in a rangeExcel - 在范围内寻找空单元格
【发布时间】:2021-02-25 13:16:57
【问题描述】:

我正在尝试寻找一种方法来搜索 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

理想情况下,我想对行和列进行进一步的错误检查以发现任何其他异常,例如,我有时会得到带有#REF 的电子表格!在其中删除这些行会很棒。

提前致谢。

【问题讨论】:

  • 您可以使用 SpecialCellsproperty 作为范围来查找空单元格而无需循环,一次完成。
  • 嗨达米安。我将如何在上面的代码中使用它?

标签: excel vba


【解决方案1】:

只是你可以适应的东西。计算是否有任何空单元格。如果计数为 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

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

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

【讨论】:

  • 这很有效,谢谢。我稍微调整了一下以找到我当前的代码,但它完成了工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-15
  • 2020-01-24
  • 1970-01-01
  • 2022-09-23
  • 1970-01-01
  • 2020-08-31
相关资源
最近更新 更多