我工作的Excel電子表格,拉從SQL數據庫選擇列表,然後填充表。然後提示用戶掃描零件號碼。我試圖在A列中找到部件號,並返回部件號的行。VBA - 使用SearchRange查找變量值
部件號開始作爲Variant類型,但認爲類型是問題,我通過其值設置爲另一個變量它轉換成字符串。
最後,我發現這個代碼片斷(我試過很多,至今沒有工作過),並在您指定的號碼(123456789012),如下面的代碼它的工作原理。如果使用變量sPart或scanPart替換該數字,則不起作用。
我需要它的工作找到變量SPART(String)或scanPart(變體)的行。我究竟做錯了什麼?
Function ReturnRowNumber()
Dim ws As Excel.Worksheet
Set ws = ActiveSheet
Dim scanPart As Variant
Dim sPart As String
Dim FoundRow As String
scanPart = InputBox("Scan the first part number", "Part Number") 'Get Part Number
sPart = scanPart
MsgBox sPart
Dim SearchRange As Range
Dim FindRow As Range
Set SearchRange = Range("A1", Range("A65536").End(xlUp))
Set FindRow = SearchRange.Find(123456789012#, LookIn:=xlValues, lookat:=xlWhole)
MsgBox FindRow.Row
End Function
在此先感謝您的幫助!
達納
也許一部分的困惑是信息在Excel中的哪種類型。我們的一些零件號碼都是數字,其他的是數字和連字符,還有一些是字母和數字。 Excel中字段的格式目前被歸類爲文本。那會使它成爲一個字符串,對嗎? –
@DanaSkyware - 無論這個代碼應該工作的格式。由於字符串變量會將收集的任何內容轉換爲字符串類型。 –
使用您的代碼時,當查找部件號1504915-0013時,它返回了一行'0'。我粘貼了當前電子表格截圖的鏈接。 https://www.dropbox.com/s/zzbvvgnsqxpa0wj/spreadsheet_sample.png?dl=0 –