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