これは非常に単純なはずですが、私はフォーラムと SO の回答を何時間も検索して運が悪いので、(しぶしぶ)自分の質問を作成しています。
私がやろうとしているのは、単に新しいワークブックを作成し、別のワークブックの範囲をそのワークブックに貼り付けることです。シンプルですね..?
元のワークブック、Book1 としましょう。セル A1:B10の値をコピーする新しいブック Book2 を作成しようとしています。
私のコードの 1 つのバージョンを次に示します (Book1 を開いて開始):
Range("A1:B10").Copy
Set NewBook = Workbooks.Add
With NewBook
.SaveAs Filename:="Book2.xls"
End With
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
これにより、「Range クラスの PasteSpecial に失敗しました」というエラーが発生します。次の修正を試みましたが、うまくいきませんでした。
- 「Workbooks("Book2.xls").Activate」をコードに追加
- PasteSpecial 行の余分な引数を削除しました
- 「.PasteSpecial」の代わりに「.Paste」を試しました
- 「Selection.PasteSpecial」を「ActiveSheet.PasteSpecial」に変更
- ワークブックとシート参照を含むコピー範囲を明示的に参照する
- 最初に新しいワークブックを作成してからコピーを実行してから、新しいワークブックを再アクティブ化して貼り付けます
上記の解決策はどれも機能しません... この段階での知恵はありがたく受け取ります!