質問ありがとうございます。 Do~Loop While sfname "" の間で、メインの処理を行っていますが、 その処理は、Set 支店sh = 支店bk.Worksheets(1)として、1枚だけですね。 複数シートにする場合は、 Do~Loop While sfname "" の間で、For Eachで1枚ずつ回してデータをコピーしてはりつければいいど思います。 For Each ws In 支店bk.Worksheets Set 支店sh = ws コード同じ Next ws
@@Excel-jyuku Windowsでマクロをやっていたのですが、Set ws=wb.Worksheets(1)のところで方が一致しませんとエラーがでます どういうエラーなのでしょうか 教えていただけますと幸いです Sub データ転記2() Dim i As Long, j As Long Dim sfname As String Dim wb As Workbook Dim ws As Worksheets myfolder = ThisWorkbook.Path sfname = Dir(myfolder & "\" & "*.xls") Do Set wb = Workbooks.Open(Filename:=myfolder & "\" & sfname) Set ws = wb.Worksheets(1) i = sumamry.Cells(Summary.Rows.Count, 1).End(xlUp).Row i = i + 1 ws.Cells(1, 3).Value = Summary.Cells(i, 6).Value wb.Close SaveChanges:=False sfname = Dir() Loop While sfname "" End Sub
チャンネル登録させていただきました。
シートが複数の時はどういった処理になりますでしょうか?
質問ありがとうございます。
Do~Loop While sfname ""
の間で、メインの処理を行っていますが、
その処理は、Set 支店sh = 支店bk.Worksheets(1)として、1枚だけですね。
複数シートにする場合は、
Do~Loop While sfname ""
の間で、For Eachで1枚ずつ回してデータをコピーしてはりつければいいど思います。
For Each ws In 支店bk.Worksheets
Set 支店sh = ws
コード同じ
Next ws
参考書で似たようなマクロのコード書いてましたので、今回参考になりました!
うわっ!そうなんですか?恥ずかしい限りです。
もし、へんな個所がありましたら、教えてください。
いつも見てます。それにしても配列の爆速はすごいと思います。それもコードが短くてわかりやすく勉強になりました。
もっと教えて欲しいです。
配列じゃなかったら出来るんですが、配列でしたいことがあります。挑戦中です。
内容が、複数シートがあって配列を使って別シートへ転記をしたいです。
シート数は多いです
内容について良く理解できました。ありがとうございます。
1点ご質問なのですが、取得した内容に付け加えてまとめシートに列を追加し、取得元の支店のファイル名を付加するコードは難しいのでしょうか?
それぞれのデータに「販売店」が入っておらず、各データがどのファイルから取得されたものか判別できるようにしたいということになります。
はじめまして チャンネル登録しました。これから勉強させていただきます。ここから話が変わります。猫ちゃん20歳で大往生されていたとのこと。遅まきながら猫ちゃんのご冥福をお祈りします。うちの実家の猫も19歳まで生き、大往生の部類なんですが悲しさにはかわりありません…。ちゃんとうちの母と会話してましたし…。
コメントに対応していただきありがとうございました! 練習して書いてたマクロで間違いなくてよかったです。だたExcel for MacではDir関数が使えないらしく撃沈いたしました。
考え方は合っていたのに、MACではできませんでしたか?それは、残念でしたね。
@@Excel-jyuku
Windowsでマクロをやっていたのですが、Set ws=wb.Worksheets(1)のところで方が一致しませんとエラーがでます どういうエラーなのでしょうか
教えていただけますと幸いです
Sub データ転記2()
Dim i As Long, j As Long
Dim sfname As String
Dim wb As Workbook
Dim ws As Worksheets
myfolder = ThisWorkbook.Path
sfname = Dir(myfolder & "\" & "*.xls")
Do
Set wb = Workbooks.Open(Filename:=myfolder & "\" & sfname)
Set ws = wb.Worksheets(1)
i = sumamry.Cells(Summary.Rows.Count, 1).End(xlUp).Row
i = i + 1
ws.Cells(1, 3).Value = Summary.Cells(i, 6).Value
wb.Close SaveChanges:=False
sfname = Dir()
Loop While sfname ""
End Sub
型が一致しないのは、Dim ws As Worksheetsと複数しているのに、Set ws = Worksheets(1) としてあり、こちらは1枚をセットしています。
Dim ws As Worksheet にすればOKだと思います。
神回です!ありがとうございます😊
今回のコードが理解できたということは、ずっと継続してマクロ講座をご覧になっていたということですね。あなたの努力がすばらしいです。そしてお役に立ててうれしいです。