2016-08-31 3 views
0

Ich habe das folgende Skript, das einen Bereich zum Kopieren auf eine E-Mail setzt, aber ich benötige diesen Bereich von Spalte 1 bis 13, während Spalte 7 ("1: 6", "8:13") entfernt Ich habe versucht, alle Arten zu korrigieren, aber jeder Versuch führt zu einem Fehler. HierHTML-E-Mail-Bereich senden

ist der Code Ich verwende

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

Jede Hilfe sehr geschätzt wird. Danke.

Antwort

2

Mit Union ist ziemlich sauberer Weg dies zu tun. Im Folgenden finden Sie ein Codebeispiel für Ihren Code.

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

Sie haben mehrere Optionen - entweder durch Verknüpfen von Bereichsadressen über Komma oder Erstellen separater Bereiche und Verwenden der Methode Union. Sehen Sie sich den Artikel How to: Refer to Multiple Ranges in der Microsoft Hilfe an.

+0

Danke, ich suchte stundenlang, um das zu finden. Das funktioniert perfekt. – Paul

1

Sie könnten versuchen Union in einer Schleife wie folgt zu verwenden.

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