我有下面的脚本设置范围复制到一个电子邮件但是我需要这个范围从第1列到第13列,同时删除列7(“1:6”,“8:13”) 我已尝试各种方法来纠正此错误,但每次尝试都会导致错误。发送HTML邮件范围
这里是我使用
Set RangeCopy = Sheets("Applications").Range(Cells(1, 1), Cells(R, 13)).SpecialCells(xlCellTypeVisible)
任何帮助表示赞赏代码。 谢谢。
我有下面的脚本设置范围复制到一个电子邮件但是我需要这个范围从第1列到第13列,同时删除列7(“1:6”,“8:13”) 我已尝试各种方法来纠正此错误,但每次尝试都会导致错误。发送HTML邮件范围
这里是我使用
Set RangeCopy = Sheets("Applications").Range(Cells(1, 1), Cells(R, 13)).SpecialCells(xlCellTypeVisible)
任何帮助表示赞赏代码。 谢谢。
使用Union
是非常干净的做法。请参阅下面的代码给出您的代码示例。
Dim unionrng As Range
Set unionrng = Application.Union(Sheets("Applications").Range(Cells(1, 1), Cells(r, 6)), _
Sheets("Applications").Range(Cells(1, 8), Cells(r, 13)))
Sheets("Applications").Range(unionrng.Address).SpecialCells (xlCellTypeVisible)
您有几个选项 - 通过逗号连接范围地址或构建单独的范围并使用Union
方法。请参阅Microsoft帮助中的How to: Refer to Multiple Ranges文章。
你可以尝试在这样的循环中使用联合。
Dim x As Long
Dim y As Long
For y = 1 To 13
For x = 1 To r
If y <> 7 Then
If RangeCopy Is Nothing Then
Set RangeCopy = cells(x, y)
Else
Set RangeCopy = Application.Union(RangeCopy, cells(x, y))
End If
End If
Next x
Next y
谢谢你,我正在寻找几个小时试图找到这个。这工作完美。 – Paul