次の行が空白になるまで自動入力


0

次のように書式設定されたセルを含む書式設定済みのスプレッドシートレポートがあります。

A           B         C        D
                               Week1 Week2
CUSTOMER A  PRODUCT A MEASURE A
                      MEASURE B
                      MEASURE C
CUSTOMER B  PRODUCT B MEASURE A
                      MEASURE B
                      MEASURE C

レポートには数千の行を含めることができます。列AとBのセルの結合を解除する必要があります。これにより、3つのセルブロックが作成され、ブロックの最初の行に文字列が含まれます。この場合はA2。

次の状況を達成するには、A列とB列のセルを自動入力する必要があります。

CUSTOMER A PRODUCT A MEASURE A
CUSTOMER A PRODUCT A MEASURE B
CUSTOMER A PRODUCT A MEASURE C
CUSTOMER B PRODUCT B MEASURE A
CUSTOMER B PRODUCT B MEASURE B
CUSTOMER B PRODUCT B MEASURE C

値は、2行、または自動入力値と等しくない値を含むセルまで自動入力される必要があります。次に、次の2行までその値を自動入力し、3番目のセルなどに含まれる値に切り替えます。

最後の行1に値が含まれるまで(最後の行に日付と時刻が含まれる)、それを継続する必要があります。

VBAループでこれを行いたいです。列A、B、Cは常に文字列であり、列D以降の値は数値です。


質問の書式設定についてコメントしてください。機能はバージョンによって異なるため、質問でExcelのバージョンを示すことはお勧めできませんか?
SpaceRock 14年

回答:


0

うまくいけば、これがあなたが必要とするものです。重要な各行の上にコメントを追加したので、何が起こっているかを追跡し、必要に応じて調整を加えることができます。

これは、列Cのデータが、作業が必要な行の代表であると仮定しています。最後の行に日付+時刻が含まれるので、最後の行-1まで続けるべきだと言いましたが、日付+時刻を含む列Cでない限り、これで問題ありません。

Dim myData As Range

'Set a range by figuring out the length of your data based on column C data:
Set myData = Range("C2", Range("C2").End(xlDown))

'create two blank variables that we'll use
'to store data later:
colAdata = ""
colBdata = ""

'Loop through each row in the 'myData' range:
For Each cell In myData

    'First, unmerge cells that are merged in columns A&B:
    If cell(1, -1).MergeCells = True Then cell(1, -1).UnMerge
    If cell(1, 0).MergeCells = True Then cell(1, 0).UnMerge

    'Check if column A has data, and if so, grab its value and
    'column B's value for use in the next iteration:
    If cell(1, -1).Value <> "" Then
        colAdata = cell(1, -1).Value
        colBdata = cell(1, 0).Value
    Else 'it's blank so enter the data from the row above:
        cell(1, -1).Value = colAdata
        cell(1, 0).Value = colBdata
    End If

Next

これがお役に立てば幸いです。


ありがとう。このサブはかなりうまく機能します。レポートは色と境界線に関してかなり事前にフォーマットされているので、次の支援が必要です。自動入力で、入力する値を取得するソースセルの書式を保持します。そうでなければ素晴らしいループ。
スペースロック14年

うまくいきました。書式を再設定し、理解したことを確認します。結合されたセル(セルA2など)には色と境界線の書式が設定されており、その書式を保持して、結合解除後にのみA2に表示されるようにする必要がありますか?または、A2に保存し、そのフォーマットを後続の行A3、A4にコピーする必要がありますか?
デビッド14年

後者を実行する必要があり、後続の行の書式設定を保持する必要があります。
スペースロック14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.