2016-04-15 18 views

答えて

2

ListObjectオブジェクトへの参照をRangeに割り当てることはできません。それらは同じものではありません。

$A$1:$C$2でこれらの値を使用して、新しいシートを作成します。リボンから

A B C 
1 2 3 

ヒット「マクロの記録」、および「テーブルとして書式」を選択します。マクロレコーダーを停止します。このコードは生成されます:

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 

あなたはシートのListObjectsコレクションにアクセスし、あなたのソースの範囲を指定してAddListObjectする必要があります。

+0

しかし、私はテーブルとしてフォーマットしたくありません。私はちょうどセルの範囲をコピーし、それをWord文書に貼り付け、フォーマットしたいと思う。 – Dombey

+0

あなたは 'ListObject'を望みます - それは*正確に*"テーブル "は何ですか... –

+0

申し訳ありません、私はテーブルとしてフォーマットしたくありません。 – Dombey

2

(これは@ mats-mugにコメントとして投稿しますが、まだできません)@ mats-mugの回答と一般的な習慣の補足として、コードにActiveSheetを使用しないことを検討してください。シートをワークシートオブジェクトとして宣言します。

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