[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『一覧から別々のファイルへ抽出をしたいです』(あべ)
数百人の名簿一覧から特定の列のデータ(aかbかc)をそれぞれのエクセルに反映をしたいです。
それぞれのエクセルは、数百人分あります。 名簿一覧に記載された成績(aかbかc)を個人のエクセルにも入力する作業です。 何かいい方法はありますでしょうか。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
(γ) 2020/04/17(金) 06:33
(1)オートフィルタを設定します (2)特定の列の(a)を抽出します (3)(a)に対応したブックに貼付します
(4)b,cも同様
でいいんじゃないですか?
(もこな2 ) 2020/04/17(金) 07:23
「成績一覧」というエクセルのS列に成績(aかbかc)が載っています
D列には個人名が載っており、900名(900行)分あります
このS列の成績を、900名分の別々のエクセルの「ap45」のセルに反映したいです
別々のエクセルは、D列と同じ値(個人名)がそれぞれのエクセル名です
これまでは「成績一覧」のエクセルを開いて、S列の成績を見て
900個のエクセルひとつひとつに、該当の成績を手入力しておりました。
大変な手間なので「成績一覧」S列に成績を入力すると、
自動で900個のエクセルに反映する仕組みを作りたいと思った次第です
ご教授頂けますと幸いです
(あべ) 2020/04/17(金) 10:56
上記がよくわからないという場合は手を出さないほうが無難です。
コメントアウトした行のシングルクォーテーションをなくすと
ブックを上書き保存してしまうので取扱注意です。
Sub Sample() Dim wPath As String Dim ws As Worksheet Dim wb As Workbook Dim i As Long Set ws = ActiveSheet wPath = ThisWorkbook.Path & "\" 'For i = 1 To ws.Cells(Rows.Count, "S").End(xlUp).Row Set wb = Workbooks.Open(wPath & ws.Cells(i, "D").Value & ".xlsx") wb.Worksheets(1).Range("AP45").Value = ws.Cells(i, "S").Value 'wb.Close True 'Next i End Sub
(ひでお) 2020/04/17(金) 11:42
さて、やりたいことは、こんな感じですよね?
成績一覧.xlsm の 1番目のシート ___D___...__S_____ 1 名前 成績 2 山田 a ←「山田.xlsx」の「Sheet1」のAP45セルに転記 3 田口 a ←「田口.xlsx」の「Sheet1」のAP45セルに転記 4 千葉 c ←「千葉.xlsx」の「Sheet1」のAP45セルに転記 5 羽柴 b ←「羽柴.xlsx」の「Sheet1」のAP45セルに転記 6 羽生 b ←「羽生.xlsx」の「Sheet1」のAP45セルに転記 7 上田 a ←「上田.xlsx」の「Sheet1」のAP45セルに転記
この場合、すでにコメントがついていますが、私もマクロでの処理をお勧めします。
上記のようなレイアウトであれば、2行目から順番に
(1) n行目のD列をみて、その人のブックを開く (2) 開いたブックのSheet1シートのAP45セルに n行目のS列を見て転記 (3) 開いたブックを上書きして保存 (4) 開いたブックを閉じる
という手順で繰り返し処理をするようにしてやればよいです。
ループ(繰り返し)処理が絡んでくるので、マクロの記録が使えず取っつきづらいかもしれませが、出来ないことではないとおもいますので、マクロでの対応を検討してみては如何でしょうか?
(もこな2) 2020/04/17(金) 12:58
(あべ) 2020/04/17(金) 14:12
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.