我有一个代码可以选择指定范围并将其粘贴到电子邮件中。我希望它跳过复制范围内的空白单元格,并仅粘贴包含数据的单元格。指定的范围应始终保持不变,因为它是从外部源填充的表格,有时单元格可能为空白,有时不同的单元格将为空白。有时没有单元格会是空白的。
下面是我到目前为止的代码 - 我已经尝试过常量,但由于某种原因我无法让它工作。然后它只会粘贴范围 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
此时,当我指定的范围内没有空白单元格时,上面的代码效果很好。
用这个;
Selection.SpecialCells(xlCellTypeConstants)
或者;
Union(Selection.SpecialCells(xlCellTypeConstants), Selection.SpecialCells(xlCellTypeFormulas))