
別シートへ指定セルを転記するコードで下記のように教示して頂き使用してます。
これを「別ブック」のシートに同じ様式に転記するように出来たらと思っております。
------------------------------------------------------------------
'----------------------------------------
'別sheetへ転記
'----------------------------------------
Sub 転記_sheet()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = Worksheets("転記元")
Set ws2 = Worksheets("転記先")
'ws2の貼り付け位置
x = ws2.Range("B10").End(xlDown).Row
If x = Rows.Count Then x = 11 Else x = x + 1
'②シートを指定してデータを転記
ws2.Range("B" & x & ":C" & x + 15).Value = ws1.Range("A10:B25").Value
ws2.Range("D" & x & ":D" & x + 15).Value = ws1.Range("P10:P25").Value
ws2.Range("E" & x & ":E" & x + 15).Value = ws1.Range("R10:R25").Value
ws2.Range("F" & x & ":F" & x + 15).Value = ws1.Range("Y10:Y25").Value
ws2.Range("G" & x & ":G" & x + 15).Value = ws1.Range("U10:UG25").Value
End Sub
------------------------------------------------------------------
以下のコードではブックは開きますが転記出来ません。
------------------------------------------------------------------
'----------------------------------------
'別bookへ転記
'----------------------------------------
Sub 転記_Book()
Dim wb As Workbook
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = Worksheets("転記元")
Set ws2 = Worksheets("転記先")
Set wb = Workbooks.Open("パス")
'ws2の貼り付け位置
x = ws2.Range("B10").End(xlDown).Row
If x = Rows.Count Then x = 11 Else x = x + 1
'②シートを指定してデータを転記
ws2.Range("B" & x & ":C" & x + 15).Value = ws1.Range("A10:B25").Value
ws2.Range("D" & x & ":D" & x + 15).Value = ws1.Range("P10:P25").Value
ws2.Range("E" & x & ":E" & x + 15).Value = ws1.Range("R10:R25").Value
ws2.Range("F" & x & ":F" & x + 15).Value = ws1.Range("Y10:Y25").Value
ws2.Range("G" & x & ":G" & x + 15).Value = ws1.Range("U10:UG25").Value
End Sub
------------------------------------------------------------------
ご教示頂ければと思っております。
よろしくお願いいたします。
No.5ベストアンサー
- 回答日時:
No3です
補足をよく見たら、ws1の設定も一緒に移動しちゃっているようですけれど、「転記元シート」も別ブック内のシートのおつもりでしょうか??
それなら、それで良いのですが・・・。
もしも、ご質問が『元のブックのシートの値を、別のブックのシートに転記』したいという意味なら、
>Set wb = Workbooks.Open("パス")
>Set ws1 = Worksheets("転記元")
>Set ws2 = ws.Worksheets("転記先")
ではなく、最初に記した通りに、
>wbを開いてから Set ws2 = wb.Worksheets("転記先")
とすれば良いでしょう。
Set ws1 = Worksheets("転記元")
Set wb = Workbooks.Open("パス")
Set ws2 = wb.Worksheets("転記先")
あるいは、どうしても補足の記載順に記したいのであれば、ブックを明示して、
Set wb = Workbooks.Open("パス")
Set ws1 = ThisWorkbook.Worksheets("転記元")
Set ws2 = wb.Worksheets("転記先")
のようにするとか。
※ いずれにしろ、該当するシートが存在しなければエラーになります。
ご回答ありがとうございます。
ご質問の通り「元のブックのシートの値」です。
これから月曜日まで検証できる環境では無いので改めまして確認致します。
ありがとうございます。
No.4
- 回答日時:
こんばんは、
別ブックに転記するのなら、setの仕方が違うような気がします。
違うかも知れませんが、
Set ws1 = Worksheets("転記元")
Set ws2 = Worksheets("転記先")
これは、マクロ実行ブックのシートを指します。転記先名のシートが無ければ、インデックス。。。です。
なので、
Set wb = Workbooks.Open("path")
Set ws1 = ThisWorkbook.Worksheets("転記元")
Set ws2 = wb.Worksheets("転記先")
Set ws1 =マクロ実行ブックの転記元シート
Set ws2 =別ブックの転記先シート
Workbooks.Open("path")で別ブックが開いた直後であれば
Set ws2 = wb.Worksheets("転記先")は、
Set ws2 =ActiveWorkbook.Worksheets("転記先")でも良いかと
どうでしょう?
No.3
- 回答日時:
No2です
>「インデックスが有効範囲にありません」のエラーは変わらずです。
どこでエラーが発生しているのか不明ですが、ご提示の内容から想像するところ、怪しそうなのは以下あたりでしょうか。
エラー発生行に当てはめてお調べください。
・指定したシートが存在しない(No1にも記しましたが)
・セル位置の指定の変数xの値がおかしい
No.2
- 回答日時:
No1です
ごめんなさい。
No1で書き間違えをしていました。
誤:ws.Worksheets("転記先")
正:wb.Worksheets("転記先")
ですね。
すみませんでした。
再度ありがとうございます。
以下に変更しましたが「インデックスが有効範囲にありません」のエラーは変わらずです。
Dim wb As Workbook
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = Worksheets("転記元")
Set ws2 = Worksheets("転記先")
Set wb = Workbooks.Open("パス")
'ws2の貼り付け位置
x = ws2.Range("B10").End(xlDown).Row
If x = Rows.Count Then x = 11 Else x = x + 1
'②シートを指定してデータを転記
ws2.Range("B" & x & ":C" & x + 15).Value = ws1.Range("A10:B25").Value
ws2.Range("D" & x & ":D" & x + 15).Value = ws1.Range("P10:P25").Value
ws2.Range("E" & x & ":E" & x + 15).Value = ws1.Range("R10:R25").Value
ws2.Range("F" & x & ":F" & x + 15).Value = ws1.Range("Y10:Y25").Value
ws2.Range("G" & x & ":G" & x + 15).Value = ws1.Range("U10:UG25").Value
他の原因はありますでしょうか?
No.1
- 回答日時:
こんにちは
転記先がws2なのですから、
>Set ws2 = Worksheets("転記先")
では、ThisWorkbookの「転記先シート」に設定されています。
wbを開いてから
Set ws2 = ws.Worksheets("転記先")
のようにすれば、開いたブックの「転記先シート」の意味になります。
(転記先シートが存在しない場合はエラーになりますのでご注意)
ありがとうございました。
>wbを開いてから
> Set ws2 = ws.Worksheets("転記先")
>のようにすれば、開いたブックの「転記先シート」の意味になります。
↓
Dim wb As Workbook
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set wb = Workbooks.Open("パス")
Set ws1 = Worksheets("転記元")
Set ws2 = ws.Worksheets("転記先")
'ws2の貼り付け位置
x = ws2.Range("B10").End(xlDown).Row
If x = Rows.Count Then x = 11 Else x = x + 1
'シートを指定してデータを転記
ws2.Range("B" & x & ":C" & x + 15).Value = ws1.Range("A10:B25").Value
ws2.Range("D" & x & ":D" & x + 15).Value = ws1.Range("P10:P25").Value
ws2.Range("E" & x & ":E" & x + 15).Value = ws1.Range("R10:R25").Value
ws2.Range("F" & x & ":F" & x + 15).Value = ws1.Range("Y10:Y25").Value
ws2.Range("G" & x & ":G" & x + 15).Value = ws1.Range("U10:UG25").Value
↑↑「インデックスが有効範囲にありません」とエラーになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBAで教えて頂きたいのですが? 2 2022/12/31 20:28
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) セルS2に入力した「月」と一致したB列の右隣へセルS110の値を転記する下記マクロを実行するとエラー 2 2022/12/06 17:32
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) 配列の勉強をしています。使用する変数の意味、検索条件の書き方が難しいです。 2 2022/09/15 14:06
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) 他のシートからコピーする下記マクロで貼付け位置をWorksheets(1).Range("A3")の 8 2023/01/30 18:48
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
既婚で現役のAV女優さんは居ま...
-
VBA ソートすると、1、11、...
-
CDレコの曲の消し方を教えてく...
-
エクセル・VBAで決められたルー...
-
大昔から、クンニ、フェラって...
-
the vicar's pleasure 和訳
-
別ブックの空白行に転記
-
エクセル最終行の下に貼り付け
-
シンナーの夏型と冬型の違いは?
-
サイドビジネスやるべきか?
-
直線コネクタの中央にコネクタ...
-
Excel マクロの一部改造の方法...
-
Word 黒塗り部分の文字のみ削除...
-
最適な組み合わせの自動計算
-
射精したあとの匂いって他人に...
-
1日3回セックスって多いですか...
-
おっぱいを舐める
-
女性は電マ、ローター、バイブ...
-
先日彼氏とラブホに行ったら電...
-
手マンした手って臭いですか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
既婚で現役のAV女優さんは居ま...
-
VBA ソートすると、1、11、...
-
VBAが止まります。
-
CDレコの曲の消し方を教えてく...
-
シンナーの夏型と冬型の違いは?
-
直線コネクタの中央にコネクタ...
-
大昔から、クンニ、フェラって...
-
EXCELで3行を一組にして結合す...
-
エクセルvbaで月と文字の組み合...
-
相対参照から絶対参照に変換す...
-
別ブックの空白行に転記
-
最適な組み合わせの自動計算
-
データの平均を1分値にまとめる...
-
エクセル最終行の下に貼り付け
-
性欲自体はあるのにセックスで...
-
bluetoothのclass1とclass2の互...
-
エクセルのVBAでTTESTがエラー...
-
Word 黒塗り部分の文字のみ削除...
-
至急です。AQUOS ZERO2とGalaxy...
-
Excelで抽出・連続印刷したいです
おすすめ情報