コードではActiveCellを選択してその列にある色付きのセルを参照するようにしています。そのときActiveCellはセルの結合をされており3列が結合されています。その3列のうち1番左の列しか参照されないので3列すべてが参照されるようにしたいです。
Sub
1 Dim ws1 As Worksheet 2 Set ws1 = ThisWorkbook.Worksheets("1") 3 Dim ws2 As Worksheet 4 Set ws2 = ThisWorkbook.Worksheets("2") 5 6 Dim i, r, kj1, kj2 7 r = 8 8 9 ws2.Range("B8:B29").ClearContents 10 11 For i = 10 To ws1.Cells(ws1.Rows.Count, 2).End(xlUp).Row 12 If ws1.Cells(i, 2).Value <> "" Then kj1 = ws1.Cells(i, 2).Value 13 If ws1.Cells(i, ActiveCell.Column).Interior.ColorIndex <> xlColorIndexNone Then 14 If kj1 <> kj2 Then 15 kj2 = kj1 16 ws2.Cells(r, 2).Value = kj2 17 r = r + 1 18 End If 19 ws2.Cells(r, 2).Value = ws1.Cells(i, 4).Value 20 r = r + 1 21 End If 22 Next 23End Subここに言語を入力 24コード
よろしくお願いします。
画像が表示されてませんので、アップロードしておしてください。
> その3列のうち1番左の列しか参照されないので3列すべてが参照されるようにしたいです。
結合セルは1番左の列にしか値は入っていません。他の2列は空欄です。
空欄ときまっているものを参照しても無意味です。
このことを踏まえたうえでどうしたいのでしょう。
すみませんなぜか画像が貼れなくなっています。テラテイルのアップデートで一部機能が使えないようなのでそのせいかもしれません。
画像はよくある工程表なのですが工程のある日はセルを塗りつぶしています。結合セルは日にちになっていてその下3列で午前午後残業と分けてあります。塗りつぶしセルを参照するようにしているのですが午前分しか参照されないので1日すべてを参照するようにしたいです。
回答1件
あなたの回答
tips
プレビュー