2016-04-15 15 views

Antwort

2

Sie können keine Range Referenz auf ein Objekt ListObject zuweisen - sie sind nicht das Gleiche!

Machen Sie ein neues Blatt, mit diesen Werten in $A$1:$C$2:

A B C 
1 2 3 

Hit "Makro-Recorder", und wählen Sie "Format als Tabelle" aus dem Band; Stoppen Sie den Makrorekorder. Dieser Code wird generiert:

Sub Macro1() 
    ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$C$2"), , xlYes).Name = _ 
     "Table1" 
    Range("Table1[#All]").Select 
    ActiveSheet.ListObjects("Table1").TableStyle = "TableStyleLight1" 
End Sub 

Sie müssen Add ein ListObject durch das ListObjects Sammlung Blatt zugreifen, und Ihren Quellbereich angeben.

+0

Aber ich möchte es nicht als Tabelle formatieren. Ich möchte nur den Zellbereich kopieren, in Word-Dokument einfügen und formatieren. – Dombey

+0

Sie wollen ein 'ListObject' - das ist genau * was eine" Tabelle "ist ... –

+0

Sorry, ich möchte es nicht als Tabelle formatieren. – Dombey

2

(Ich würde dies als Kommentar zu @ Matten-Becher, aber ich kann noch nicht) Als Ergänzung zu der Antwort von @ Matten-Becher und eine allgemeine gute Praxis, ziehen Sie nicht ActiveSheet in Ihrem Code. Deklarieren Sie das Blatt als Arbeitsblattobjekt.

Dim wbSLA as Workbook 
Dim wsDetailSLA as Worksheet 
    Set wbSLA = ThisWorkbook 
    Set wsDetailSLA = wbSLA.Sheets("SLA Details") 

'use @mats-mug code here using the worksheet objects instead of ActiveSheet 
Verwandte Themen