2016-08-31 12 views
0

メールにコピーする範囲を設定する以下のスクリプトがありますが、この範囲はカラム7(「1:6」、「8:13」) これを修正するためにあらゆる種類の試行を試みましたが、試行ごとにエラーが発生します。ここでHTMLメールを送信する

は、私はすべてのヘルプは高く評価され

Set RangeCopy = Sheets("Applications").Range(Cells(1, 1), Cells(R, 13)).SpecialCells(xlCellTypeVisible) 

を使用しているコードです。 ありがとうございます。

答えて

2

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) 
1

複数のオプションがあります。範囲アドレスをコンマで連結したり、別の範囲を作成したり、Unionメソッドを使用したりすることができます。 MicrosoftヘルプのHow to: Refer to Multiple Rangesの記事をご覧ください。

+0

ありがとう、私はこれを見つけることを試みていました。これは完全に機能します。 – Paul

1

このようなループでUnionを試すことができます。

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 
関連する問題