teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2016/11/09 00:51

投稿

jawa
jawa

スコア3020

answer CHANGED
@@ -44,4 +44,52 @@
44
44
  今回は必須項目と思われるチーム名の列がありますので、この列の.End(xlUp)で最終データを探せばよいと思います。
45
45
  確実に目的のデータ範囲が取得できることがわかっているようでしたら、CurrentRegionを利用してもよいでしょう。
46
46
 
47
- 目的のデータ範囲が取得できるよう、データ範囲の選択方法を検討してください。
47
+ 目的のデータ範囲が取得できるよう、データ範囲の選択方法を検討してください。
48
+
49
+
50
+ 追記
51
+ ---
52
+ 私が動作確認したソースです。
53
+ ynakanoさん提示のソースに少し手を加えた内容です。
54
+ ```
55
+ Dim shtRead As Worksheet
56
+ Set shtRead = Sheets("入力")
57
+
58
+ Dim iReadRow As Integer
59
+ Dim iWriteRow As Integer
60
+
61
+ Dim strShtName As String
62
+
63
+ '入力シートのデータをループ処理
64
+ For iReadRow = 3 To shtRead.Cells(Rows.Count, 3).End(xlUp).Row
65
+
66
+ Select Case shtRead.Cells(iReadRow, 3).Value
67
+ Case "1.Aチーム"
68
+ strShtName = "Aチーム"
69
+
70
+ Case "2.Bチーム"
71
+ strShtName = "Bチーム"
72
+
73
+ Case "3.Cチーム"
74
+ strShtName = "Cチーム"
75
+
76
+ Case "4.Dチーム"
77
+ strShtName = "Dチーム"
78
+
79
+ Case "5.Eチーム"
80
+ strShtName = "Eチーム"
81
+
82
+ Case Else
83
+ strShtName = ""
84
+
85
+ End Select
86
+
87
+ 'シート名が取得できたらコピーを行う
88
+ If strShtName <> "" Then
89
+ '出力シートの最終行+1を取得
90
+ iWriteRow = Sheets(strShtName).Cells(Rows.Count, 1).End(xlUp).Row + 1
91
+ '入力シートから出力シートへコピー
92
+ shtRead.Range(shtRead.Cells(iReadRow, 3), shtRead.Cells(iReadRow, 33)).Copy Destination:=Sheets(strShtName).Cells(iWriteRow, 1)
93
+ End If
94
+ Next
95
+ ```