Excel VBA 跳过空单元格

问题描述 投票:0回答:1

我有一个代码可以选择指定范围并将其粘贴到电子邮件中。我希望它跳过复制范围内的空白单元格,并仅粘贴包含数据的单元格。指定的范围应始终保持不变,因为它是从外部源填充的表格,有时单元格可能为空白,有时不同的单元格将为空白。有时没有单元格会是空白的。

下面是我到目前为止的代码 - 我已经尝试过常量,但由于某种原因我无法让它工作。然后它只会粘贴范围 C13:J13。这是单元格中没有任何公式的唯一行 - 只有文本。该范围内的所有其他单元格中都有公式,所以我想最好执行检查长度是否<1 then skip.

    Dim rng As Range
    Dim OutApp As Object
    Dim OutMail As Object

    Set rng = Nothing
    On Error Resume Next
    Set rng = Sheets("000000").Range("C12:J29").SpecialCells(xlCellTypeVisible)
    On Error GoTo 0

    If rng Is Nothing Then
        MsgBox "The selection is not a range or the sheet is protected" & _
               vbNewLine & "please correct and try again.", vbOKOnly
        Exit Sub
    End If

此时,当我指定的范围内没有空白单元格时,上面的代码效果很好。

excel vba
1个回答
0
投票

用这个;

Selection.SpecialCells(xlCellTypeConstants)

或者;

Union(Selection.SpecialCells(xlCellTypeConstants), Selection.SpecialCells(xlCellTypeFormulas))

© www.soinside.com 2019 - 2024. All rights reserved.