|
▼こうちゃん さん:
週末に考えましたがまだ問題が解決できません。
dの値ごとのシートに集約したいのですが
dの数だけシートが出きてしまいます。
どうすれば解決できるでしょうか?
Sub test()
Dim i As Long
Dim A As Integer
Dim d As String
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim wsFlg As Boolean
Set ws1 = Worksheets("一覧")
For i = 2 To ws1.Range("A65535").End(xlUp).Row
d = ws1.Cells(i, 10).Value
'9でなく10でした。単純間違いです。
wsFlg = False
For Each ws2 In Worksheets
If ws2.Name = d Then
wsFlg = True
Exit For
End If
If Not wsFlg Then
' Addでなく書式の入ったシートaをコピーすることにしました。
' Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = d
Worksheets("a").Copy after:=Worksheets(Worksheets.Count)
' Aの処理を直しました。8行目に(i,9)(i,10)を、_
13行目以降に(i,4)(i,5)…をいれます。
A = 13
End If
' A = Worksheets(d).Range("A65536").End(xlUp).Row
ActiveSheet.Cells(8, 2).Value = ws1.Cells(i, 9).Value
ActiveSheet.Cells(8, 5).Value = ws1.Cells(i, 10).Value
ActiveSheet.Cells(A, 1).Value = ws1.Cells(i, 4).Value
ActiveSheet.Cells(A, 2).Value = ws1.Cells(i, 5).Value
ActiveSheet.Cells(A, 3).Value = ws1.Cells(i, 6).Value
ActiveSheet.Cells(A, 4).Value = ws1.Cells(i, 7).Value
ActiveSheet.Cells(A, 5).Value = ws1.Cells(i, 11).Value
ActiveSheet.Cells(A, 11).Value = ws1.Cells(i, 12).Value
ActiveSheet.Cells(A, 11).Value = ws1.Cells(i, 12).Value
A = A + 1
Next
Next
End Sub
|
|