2017-03-02 59 views
1

在窗體上我正在使用組合框來搜索文本範圍並返回該行值。 ScrollBox值然後被設置爲行值。我的最小行值是5,最大值是由row.count發生的,它恰好是28.當我運行代碼時,ScrollBar工作正常,直到我的值超過23,scrollbar.value重置爲7並開始全部再次。使用組合框設置行值也有同樣的問題,我無法搜索整個文本範圍。在Excel中設置滾動條值時出現組合框錯誤

這裏是我的代碼:

Private Sub ScrollBar1_Change() 


g = ScrollBar1.Value 
StrtComboBox.Value = Sheets("Main").Cells(g, 6).Value 
Plyr1Lbl.Caption = Sheets("Main").Cells(g, 7).Value 
Plyr2Lbl.Caption = Sheets("Main").Cells(g, 8).Value 
Plyr3Lbl.Caption = Sheets("Main").Cells(g, 9).Value 
Plyr4Lbl.Caption = Sheets("Main").Cells(g, 10).Value 

TextBox9.Value = ScrollBar1.Value 
TextBox10.Value = ScrollBar1.Max 


End Sub 

Private Sub StrtComboBox_Change() 
Sheets("Main").Activate 


LastHoleRow = Sheets("Main").Cells(Rows.Count, 6).End(xlUp).Row 
Names.Add Name:="Holes", RefersTo:=Range("F5:F" & LastHoleRow) 

Dim BoxValue As Range 
    With Range("Holes") 
    Set BoxValue = .Find(StrtComboBox.Value) 
    If BoxValue Is Nothing Then 
    Else 

    ScrollBar1.Value = BoxValue.Row 
    End If 
    End With 

End Sub 

Main Sheet

UserForm

+0

什麼是對F列你的 「主」 工作?它會在F23之後做任何意想不到的事嗎? – CallumDA

+0

@CallumDA列F是一直延續到F28的列表。在第28行之後,該列是空白的。我從F5:F28創建了一個命名範圍。 –

+0

我想了解你的代碼到底在幹什麼,但這很讓人困惑。你可以添加一些工作表和表格的截圖嗎? – CallumDA

回答

1

您正在尋找8A和希望找到它F24,但它可以較早F7具有價值發現18A(因爲8A可以在字符串18A中找到)。

修復應該很簡單。 .Find方法有一個.LookAt參數,它確定是否必須進行完全匹配。因此,只要改變

Set BoxValue = .Find(StrtComboBox.Value) 

這個

Set BoxValue = .Find(What:=StrtComboBox.Value, LookAt:=xlWhole) 
相關問題