入力する表が 下記の通りです
日付 氏名 内容
1 Aさん 12345
2 Bさん 23456
3 Cさん 34567
2 Aさん 56789
3 Bさん 98765
5 Aさん 34986
というような表です
シート名は"Aさん"という名のシートと"Bさん"というシートと"Cさん"という名のシートがあります。
そのAさんという名のシートには
日付 内容
1
2
3
4
5
6
というような 表があります。これは"Bさん""Cさん"ともいっしょです
この"Aさん""Bさん""Cさん"の名前を判別して、その"内容"をAさんならAさんのシートの同じ日付の"内容"に書き込みたいのです。
結果としては、
Aさんのシート
日付 内容
1 12345
2 56789
3
4
5
6 34986
としたいのです。
どなたかよい方法御座いましたら宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
Sub TENKI()
Dim DATA
Dim i As Integer
'データの範囲(範囲は広くても構わない)
'タイトル行も含む
DATA = Range("A1:C6")
'データの転記(タイトル行を避けて読み込む i=2)
For i = 2 To UBound(DATA)
If DATA(i, 1) = "" Then
'日付欄が空白なら、記入を終了します。
Exit For
Else
'B列のデータをシート名にします。
Sheets(DATA(i, 2)).Select
'日付(半角整数値)を元に、データを記入します。
'DATA(i, 1) + 1 < この数字(1)は記入開始の縦位置を指示
'Cells(, 2) < この数字(2)は記入開始横位置を指示
Cells(DATA(i, 1) + 1, 2) = DATA(i, 3)
End If
Next
MsgBox "転機終了"
End Sub
VBAの基本的なプログラムが解れば、理解可能だと思います。
No.1
- 回答日時:
(例データ)
Sheet6に
日付氏名内容
2004/7/1Aさん12345
2004/7/2Bさん23456
2004/7/3Cさん34567
2004/7/2Aさん56789
2004/7/3Bさん98765
2004/7/5Aさん34986
別にAさん、Bさん、Cさんと言う名のシート名に3シートを変えておく。A,B、Cの文字の全角・半角に注意。
本件では全角。
(VBAコード)
標準モジュールに
Sub test01()
Dim sh1 As Worksheet
Set sh1 = Worksheets("Sheet6")
Dim sname As String
d = sh1.Range("A65356").End(xlUp).Row
' MsgBox d
For i = 2 To d
sname = sh1.Cells(i, "B")
' MsgBox sname
n = Cells(i, "A") - Cells(2, "A") + 1
'MsgBox n
Worksheets(sname).Cells(n, "A") = sh1.Cells(i, "A")
Worksheets(sname).Cells(n, "B") = sh1.Cells(i, "B")
Worksheets(sname).Cells(n, "C") = sh1.Cells(i, "C")
Next i
End Sub
Sheet6のsの大文字に注意。
(注意)A,B、Cさん各シートのA列書式を日付にする
こと。
(結果)
Aさんシート
2004/7/1Aさん12345
2004/7/2Aさん56789
2004/7/5Aさん34986
Bさんシート
38170Bさん23456
38171Bさん98765
Cさんシート
38171Cさん34567
私の過去の経験から会得した自家製のコーディング的なところがあります。修正する時は意を汲んでください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelで質問です! 現在マクロを勉強中の初心者です。 以下のような表から、会社名が空白のもの以外 2 2022/06/14 12:16
- Excel(エクセル) VBAで、シート間の転記するコードを教えてください。 4 2023/03/26 10:43
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/25 11:42
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Excel(エクセル) シート名を簡単に書く方法があれば教えてください。 4 2023/08/24 12:40
- Excel(エクセル) Excel シートに画像が貼ってあり、クリックすると入力シートにジャンプする機能 1 2023/01/14 22:41
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル シフト勤務表から、...
-
ExcelVBAで、指定したシートに...
-
Excelの中央値の複数条件について
-
Excel 複数のシートからグラフ...
-
エクセルVBA:表の内容を担当者...
-
ピボットテーブルから抽出デー...
-
エクセルで入力シートから別シ...
-
Excelで、決まった行を繰り返し...
-
テキストボックス内の文字のふ...
-
エクセル
-
エクセルにおける、グラフの指...
-
エクセルでグラフタイトルが折...
-
Excelの関数について、特定の文...
-
Excelで数値→文字列変換で指数...
-
PDFの一部を切り取って別のシー...
-
セルに値がある行のみを抽出す...
-
ワードのグラフ
-
数式による空白を無視して最終...
-
エクセルのグラフの一部拡大
-
負のデータが含まれている場合...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで入力シートから別シ...
-
VBA セルの値と同じ名前のシー...
-
Excel 複数のシートからグラフ...
-
ExcelVBAで、指定したシートに...
-
Excelの中央値の複数条件について
-
Excel ハイパーリンク先のセル...
-
IF, ISNUMBER, INDIRECTの組み...
-
エクセルのワークシートが重く...
-
VBAでシート名をセルから取得し...
-
エクセルで入力→日付を自動判別...
-
質問:特定文字列から空白行ま...
-
エクセル自動の年月
-
エクセル シフト勤務表から、...
-
エクセル マクロを使って日々...
-
VBAのoffsetの動き方について教...
-
エクセルVBA:表の内容を担当者...
-
Excel日付変更との参照先の連動
-
EXCEL VBA 一致しないデータの...
-
エクセルについて質問です 日付...
-
Excelの選択肢をポップアップリ...
おすすめ情報