0

さまざまな名前で構成される列 A があります。選択した項目を列 F の最初の空のセルにコピーする方法を見つけようとしています。これは私がこれまでに行ったことです。

Sub CopyFill()
If Range("F3") = Empty Then
    ActiveCell.Copy Range("F3")
ElseIf Range("F3") <> Empty Then
    ActiveCell.Copy Range("F3").Offset(1, 0)
End If
End Sub

しかし、問題は、ここで DoUntil 関数を適用して、Excel が現在の選択内容を入力する空のセルを見つけるまでオフセットを続ける方法を理解できないことです。

お時間とご関心をお寄せいただき、誠にありがとうございます。

PS私はF3を使用しています。これは、このファイルで列が始まる場所だからです。

4

1 に答える 1

1

目的を達成する最も効率的な方法は、次のコード行です。

ActiveCell.Copy Range("F:F").Find(What:="", After:=Range("F3"), LookIn:=xlFormulas, LookAt _
        :=xlPart、SearchOrder:=xlByRows、SearchDirection:=xlNext、MatchCase:= _
        False、SearchFormat:=False)

は、.Find必要なことを正確に行います。

ループを手動で実行したい場合 (これは非常に遅くなります)、次のコードを使用できます。

サブ CopyFill()
    Dim rng As Range

    rng = Range("F3") を設定
    rng.Value "" の間
        rng = rng.Offset(1) を設定します。
    ウェンド

    ActiveCell.Copy rng

サブ終了

代わりにまたはWhile Condition ... Wendを使用することもできます。Do While condition ... LoopDo Until Not condition ... Loop

于 2013-02-11T13:22:00.977 に答える