|
こんにちは。
そういうときはマクロの記録です。
エクセルのブックを2つ開いておいて(できれば2つ同時に見える状態で)
片方のブックで記録開始。
「もう一方のブックを選択する」という操作を行って記録終了。
記録されたマクロを見てみると
Workbooks("もう一方").Activateとなっている(ハズ)。
ほぉ〜.Activateかぁ、、、ということでコード修正 v(^^
で。もし余裕があれば Activate をヘルプで引いてみる。
(これは将来ヘルプが読めるようになるための準備運動)
▼はる さん:
>vba初心者です。行き詰ってしまったので解決策をお願いします。。
>マクロを起動するブックの"マクロセット"シートの
>I4 =開くファイルのフォルダ名 L4 = ファイル名を入れています。
>ファイルを開き、マクロブックのシート(5)を開いたブックのシート(1)に貼り付けて値化したいです。
>Workbooks(WBK1).Select
>で実行時エラー'438':オブジェクトは、このプロパティまたはメソッドをサポートしていません。
>と出ます。どのように変更すれば動きますでしょうか・・・ご教授お願い致します。
>
>
>'====================================
>
> Sheets("マクロセット").Select
> Workbooks.Open Filename:=Range("I4").Value & Range("L4").Value
> ThisWorkbook.Activate
>'変数定義=============================
> Dim WBK1 As String, WBK2 As String
> WBK1 = Range("L4").Value
> WBK2 = ThisWorkbook.Name
>'初期化====================================
> Workbooks(WBK1).Select
> Worksheets(1).Cells.Clear
> Worksheets(2).Cells.Clear
> Worksheets(3).Cells.Clear
>'貼り付け====================================
> Workbooks(WBK2).Worksheets(5).Range("A:S").Copy Workbooks(WBK1).Worksheets(1).Range("A1")
> Workbooks(WBK1).Worksheets(1).Cells.Value = Workbooks(WBK1).Worksheets(1).Cells.Value
> Workbooks(WBK2).Worksheets(6).Range("A:S").Copy Workbooks(WBK1).Worksheets(2).Range("A1")
> Workbooks(WBK1).Worksheets(2).Cells.Value = Workbooks(WBK1).Worksheets(2).Cells.Value
> Workbooks(WBK2).Worksheets(7).Range("A:S").Copy Workbooks(WBK1).Worksheets(3).Range("A1")
> Workbooks(WBK1).Worksheets(3).Cells.Value = Workbooks(WBK1).Worksheets(3).Cells.Value
|
|