2013-02-11 32 views
0

我有一列由各种名称组成。我试图找出如何选定项目复制到列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将填充我当前的选择。

非常感谢您的时间和关注。

P.S.我正在使用F3,因为在这个文件中列开始为我。

回答

1

最有效的方式来实现你想要的是下面的代码行:

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

.Find会做正是你需要的。

如果你想使用手动循环(这将是慢得多),你可以使用此代码:

 
Sub CopyFill() 
    Dim rng As Range 

    Set rng = Range("F3") 
    While rng.Value "" 
     Set rng = rng.Offset(1) 
    Wend 

    ActiveCell.Copy rng 

End Sub 

而不是While Condition ... Wend你也可以使用Do While condition ... LoopDo Until Not condition ... Loop

+0

非常感谢您的帮助,Peter Albert! – Dan 2013-02-11 19:44:18

相关问题