1

VBA を使用してシート 2 からデータをコピーし、シート 1 の空白セルの範囲 (1 列) を埋める方法

つまり、シート 1 ( -blankcell- = 空白)

-blankcell-  
-blankcell-  
-blankcell-
ahjefe
-blankcell-
-blankcell-
23234
***fg4
-blankcell-
8569
-blankcell-

at sheet2 (sheet1 空白セルで使用されるデータ)

aaa
bbb
ccc

シート 1 の END 結果

aaa
bbb
ccc
ahjefe
aaa
bbb
23234
ccc
aaa
8569
bbb <- stopped at before last blank row
4

1 に答える 1

2

時間があるので、このコードを以下に書きました。ただし、質問をするときは、常に努力を示すことをお勧めします。通常、人々はあなたのためにコードを書くだけではありません。

Sub FillBlanks()

Dim wks1 As Worksheet, wks2 As Worksheet

Set wks1 = Sheets(1) 'change to your needs; could also be Sheets("Sheet1") format
Set wks2 = Sheets(2) 'change to your needs; could also be Sheets("Sheet1") format

Dim rngLookup As Range

'assume data on sheet2 is on column A
With wk2
    Set rngLookup = .Range(.Range("A1"), .Range("A" & .Rows.Count).End(xlUp))
End With

With wks1

    Dim rngSearch As Range
    'assume blank cells are in column A on sheet 1
    Set rngSearch = .Range(.Range("A1"), .Range("A" & .Rows.Count).End(xlUp))
    Set rngSearch = rngSearch.SpecialCells(xlCellTypeBlanks)

    Dim cel As Range, i As Integer

    i = 1

    For Each cel In rngSearch

        cel.Value = rngLookup.Cells(i, 1)
        If i = rngLookup.Rows.Count Then i = 1 Else: i = i + 1

    Next


End With

End Sub
于 2012-10-23T15:49:07.993 に答える