Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


13595 / 13644 ツリー ←次へ | 前へ→

【4649】データの取得 bel 03/4/1(火) 9:33 質問
【4650】Re:データの取得 ポンタ 03/4/1(火) 9:53 回答
【4651】Re:データの取得 ポンタ 03/4/1(火) 9:58 回答
【4693】Re:データの取得 bel 03/4/3(木) 11:16 お礼

【4649】データの取得
質問  bel  - 03/4/1(火) 9:33 -

引用なし
パスワード
   【4633】でbookへのコピーを質問したのですが、今後の為にもう一つ質問させて下さい。

現在の状態
→book1は開いている。book2は閉じている。

book2のsheet1のA1とsheet2のA3のデータをbook1のsheet1のA1、Sheet2のA2に値のみデータをコピーするにはどうすればよいのでしょうか?

【4633】の逆をすれば良いのかなーと思ったのですが、book1、2の開いている状態が逆なのでそこら辺をいじれば良いのかと予想はつくのですが…なにぶん無知なもので(+_+)。

話は変わってしまいますが、皆さんはどうやってそこまで分かるようになったのですか?仕事で?独学で?

【4650】Re:データの取得
回答  ポンタ  - 03/4/1(火) 9:53 -

引用なし
パスワード
   若干ウラ技的ですが、わざわざ開かなくても
できるやり方があります。

セルに
=[Book2.xls]Sheet1!A1
という式を入れるとBook2.xlsを外部参照してくれるので、
そのあとで、"形式をして貼り付け"の"値"で値のみにしています。

標準モジュールに貼り付けてお試しください。

Sub test()
  With Worksheets("Sheet1").Range("A1")
    .Formula = "=[Book2.xls]Sheet1!A1"
    .Copy
    .PasteSpecial (xlPasteValues)
  End With
  With Worksheets("Sheet2").Range("A2")
    .Formula = "=[Book2.xls]Sheet2!A3"
    .Copy
    .PasteSpecial (xlPasteValues)
  End With
  Application.CutCopyMode = False
End Sub

【4651】Re:データの取得
回答  ポンタ  - 03/4/1(火) 9:58 -

引用なし
パスワード
   一応開いて処理する方法も載せておきます。

Public Sub CopyTest()
 
  Dim wkbWrite As Workbook
 
  'Book2をOpen
  Workbooks.Open (ThisWorkbook.Path & "\" & "Book2.xls")
  'Book2.xlsの参照を変数に代入
  Set wkbWrite = ActiveWorkbook
 
  With ThisWorkbook
    .Worksheets("Sheet1").Range("A1").Value = _
      wkbWrite.Worksheets("Sheet1").Range("A1")
    .Worksheets("Sheet2").Range("A2").Value = _
      wkbWrite.Worksheets("Sheet2").Range("A3")
  End With
 
  Set wkbWrite = Nothing

End Sub

【4693】Re:データの取得
お礼  bel  - 03/4/3(木) 11:16 -

引用なし
パスワード
   ありがとうございます。参考になりました!

13595 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free