1

ユーザーにワークブックを選択するように促し、選択したワークブックの最初のワークシートを既存の (アクティブな) ワークブックにタブとして追加するサブルーチンを作成しようとしています。次に、新しいタブに「データ」という名前を付けます。これまでに使用したコードは次のとおりです。

Sub getworkbook()
' Get workbook...
Dim ws As Worksheet
Dim filter As String
Dim targetWorkbook As Workbook

Set targetWorkbook = Application.ActiveWorkbook

' get the customer workbook
filter = "Text files (*.xlsx),*.xlsx"
caption = "Please Select an input file "
ws = Application.GetOpenFilename(filter, , caption)

ws.Add After:=Sheets(Sheets.Count)

ws.Name = "DATA"

End Sub

このコードは機能していないようで、次のエラーが返されます。

「ws.Add」メソッドまたは With Block が設定されていません。

どんな助けでも大歓迎です。

ありがとう、

4

1 に答える 1

4

wsワークシートとして宣言しGetOpenFilename、ファイル名を返しています。このリンクで私の投稿を読むことをお勧めします:

これはあなたがしようとしていることですか?

:エラー処理は行っていません。私はあなたがそれを大事にすることができると確信しています。

Sub getworkbook()
    ' Get workbook...
    Dim ws As Worksheet
    Dim filter As String
    Dim targetWorkbook As Workbook, wb As Workbook
    Dim Ret As Variant

    Set targetWorkbook = Application.ActiveWorkbook

    ' get the customer workbook
    filter = "Text files (*.xlsx),*.xlsx"
    Caption = "Please Select an input file "
    Ret = Application.GetOpenFilename(filter, , Caption)

    If Ret = False Then Exit Sub

    Set wb = Workbooks.Open(Ret)

    wb.Sheets(1).Move After:=targetWorkbook.Sheets(targetWorkbook.Sheets.Count)

    ActiveSheet.Name = "DATA"
End Sub
于 2012-08-15T23:37:50.117 に答える