2016-08-09 5 views
1

私は、既存のワークブックにワークシートを追加しようとしています。 Sheets.Addを使用して正常に追加できますが、いつでもAfterパラメータを使用しようとすると、 "Expected Statement"というエラーが表示されます。 VBSは私の:=オペレータが好きではないようです。これは動作するはずかのようにエクセルのマクロエディタを使用してSheets.Addを使用して、Afterパラメータを使用してエラー "予期されるステートメント"

、それはそうです:

Sheets.Add After:=ActiveSheet 

またはこの:

Sheets("Sheet1").Move After:=Sheets(4) 

いずれかの方法で、私は予想ステートメントエラーに遭遇します。私はさまざまなオンラインの例を試したが、正しい構文を見つけることができない。 FWIW、これはWindows 10で実行されているOffice 16の新しいインストールです。

+0

一度に1つだけ開き、ワークブックはありますか? (マクロ 'Sub Macro1()' 'Sheets.Add After:= ActiveSheet'' End Sub'は私のために働きます。ダミーブックのモジュールにコピーして、あなたのために動作するかどうかを確認します。あなたのインストールで何か変わっているかもしれませんが、それはまれではありません。) – YowE3K

+0

また、 'Sheets.Add、ActiveSheet'を試してみてください。 – YowE3K

+0

クイック返信をありがとうが、まだ成功していない。 FWIW、これは動作します: –

答えて

0

wbにシートの名前とシートの名前を設定することをお勧めします。

Sub AddSheet() 

Dim wb As Workbook 
Dim sht As Worksheet 

'better to use this reference to wb object >> modify to your Workbook name 
Set wb = Workbooks("Book1.xlsm") 

'better to use this reference to sht object >> modify to your Sheet name 
Set sht = wb.Sheets("Sheet2") 

wb.Sheets.Add After:=wb.Sheets(sht.Index) 

End Sub 
+0

Shaiは、特定のブックへの参照を設定しているにもかかわらず、新しいシートをアクティブなブックに追加します。あなたは 'wb.Sheets.Add After:wb.Sheets(sht.Index)'を使用する必要があると思います。 – YowE3K

+0

@ YowE3K申し訳ありません、それは早く起きるときに起こります:) –

+1

私は昨日、すべての参考文献が認定されるべきであることを投稿してから、私自身の回答で参考文献のいくつかを修飾するのを忘れてしまった。 – YowE3K

0

あなたの問題は、二つの理由から発生している:あなたはExcelアプリケーションオブジェクトの一部であるオブジェクトを使用しようとしているので、

A) VBScriptにそのことを伝えずに作成したもの(xlApp)と

b)becau se VBScriptは、「名前付きパラメータ」の概念をサポートしていません(少なくとも、わかっていない限り)。したがって、位置パラメータを使用する必要があります。

Sheetsというだけでは、xlApp.Sheetsとは全く異なります。After:=の構文は有効なVBScriptコードではありません。

次のコードは、私の作品:

Set xlApp=CreateObject("Excel.Application") 
Set wb=xlApp.Workbooks.Add 
xlApp.Sheets.Add.Name="Test1" 
xlApp.Sheets.Add.Name="Test2" 
xlApp.Sheets.Add , xlApp.ActiveSheet 
xlApp.Sheets.Add , xlApp.Sheets("Test1") 
wb.SaveAs "TestWorkbook.xlsx" 
wb.Close False 

(私の非常に最初のVBScriptのアプリケーション - woohoo !!)

+0

ありがとうございました - 必要な行はxlApp.Sheets.Add、xlApp.ActiveSheetでした。私は前に様々な順列を試みていましたが、オプションがなくなってしまっていました。 FWIW、このコードは、ITグループがOffice 16とWindows 10をインストールするまでうまくいっていましたが、追加シートを作成すると突然破損しました。最後に、使用した構文の参照はどこで見つかりましたか?ありがとう! –

+0

@MikeBeatty - 私はあなたのコメントに、何が効いているのかを記述しました。私は答えをテキストエディタに入れ、.vbsファイルとして保存してから、.vbsファイルを実行したと思ったものを入力しました。 – YowE3K

関連する問題