アプリ版:「スタンプのみでお礼する」機能のリリースについて

文書作成ブックのセルS2に行番号を入力して,その行のデータを取得するマクロを作
成したいです。
例えば,A1のデータをU1へ取得したく,以下のようにしたのですが,
実行時エラー"1004"「"Range"メソッドは失敗しました:"_Global"オブジェクト」
が発生します。

解決策をご教授いただけますでしょうか。



Sub 取得()


Workbooks.Open Filename:=Range("○○.xlsx").Value
Worksheets("入力原票").Select

i = Range("S2")


Range("U1").Value = Workbooks("差し込みテストデータ").Worksheet("入力原票
").Cells(i, 1)

A 回答 (3件)

すみません。

#1~#2の回答は雑すぎました。

想像力を働かせてサンプルソース書きました。

Sub sampleProc()

  '開くブックのファイル名(パス付きで)
  Dim file_name As String
  file_name = "C:\test\差し込みテストデータ.xlsx"
  
  'ブックを開いて(オブジェクト)変数に入れときます
  Dim src_book As Workbook
  Set src_book = Workbooks.Open(file_name)
  
  'ブックを開くと、そのブックが ActiveWorkbook になるが
  '確実に動作させるには、ワークシート名に先の変数を使って
  'ブックを指定(装飾)します
  
  'なお、S2セルの値が行番号とのことなので、それを受ける変数は
  'ロンク型が適切ですが、一応何でも受け入れ可能なバリアント型
  ’にしときましょう。あと、変数名は分かりやすく。
  
  Dim gyo As Variant '<-- 行番号を入れとく箱(変数)
  gyo = src_book.Worksheets("入力原票").Range("S2").Value
  
  'マクロを実行しているブックは ThisWorkbook と書きます
  ThisWorkbook.Worksheets("書き込み先シート名").Range("U1").Value = gyo

  'ついでにブックを閉じる処理
  'SavaChanges に False を指定するとブックを保存しないで閉じます
  '揮発性関数 TODAY とかを使っていると、「保存しますか?」とか
  '聞いてきてしまうので、そっ閉じさせたい時に
  src_book.Close SaveChange:=False

End Sub
    • good
    • 0

あれ? いろいろおかしいですね。



文書作成ブックとは 
"○○.xlsx" ? 
Workbooks("差し込みテストデータ") ?
どちらですか?

エラーの原因は
Range("○○.xlsx").Value
ここだと思います。
例えばB1セルにブック名が入力されているなら
Workbooks.Open Filename:=Range("B1").Value
でしょう。

>A1のデータをU1

A1セルはどのブックのどのシート?
U1セルはどのブックのどのシート?
    • good
    • 0

Worksheet("入力原票")→Worksheets("入力原票")


かな?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!