2011-09-15 45 views
1

我想找到Visual Basic命令來選擇非特定數量的列。例如,我有一行中的值列表,我必須從第一列中選​​擇它們,直到找到「5」。我怎樣才能做到這一點?選擇列直到找到值

+0

您能澄清您的示例嗎?有時,學習如何在VBA中做到這一點的最好方法是記錄一個宏 - 按照您在Excel中解決它的步驟進行操作。然後再查看代碼。 – diagonalbatman

回答

1

試試這個:

Public Function Search(row As Integer) As Integer 
    Dim col As Integer 
    col = 1 

    While ActiveSheet.Cells(row, col) <> "5" 
     col = col + 1 
    Wend 
    Search = col 
End Function 
3

爲此,您可以快速找到查找,這也使「未找到」的結果通過測試,如果RNG1存在後發現

在activesheet的第1行搜索對於列A中的變量strfind和higlight到找到的值

Sub QuickFind() 
    Dim rng1 As Range 
    Dim strFind As String 
    strFind = "5" 
    Set rng1 = ActiveSheet.Rows(1).Find(strFind, , xlValues, xlWhole) 
    If rng1 Is Nothing Then 
     MsgBox strFind & " not found" 
    Else 
     Range(rng1, rng1.End(xlToLeft)).Activate 
    End If 
End Sub 
+0

+1使用find方法。也許補充:SearchOrder:= xlByColumns – Reafidy

+0

Thx Reafidy :)。這可能已被添加,因爲Find將應用先前的搜索順序,因爲代碼當前正在搜索單個行,所以我將其留出。乾杯 – brettdj