我想知道是否有人可以請求幫助。查找功能無法工作,直到表格修改
我在Excel中創建了一個userform
,並使用一個引用號,它將返回表中給定行的值。我目前收到的問題是,當我最初打開工作簿時,查找功能不起作用,並返回代碼「ID不存在」中給出的Msgbox
。
但是,如果我使用userform
在表內創建一個新行,那麼在此之後find函數工作得很好。有沒有人有任何建議?
Private Sub Find_Click()
Dim searchRange As Range
Dim foundCell As Range
Dim mysearch As String
mysearch = Me.Search.Value
With ThisWorkbook.Sheets("Master Data")
Set searchRange = .Range("A2", .Range("A" & .Rows.Count).End(xlUp))
End With
Set foundCell = searchRange.Find(what:=mysearch, Lookat:=xlWhole, MatchCase:=False, SearchFormat:=False)
If Not foundCell Is Nothing Then
Me.RsnDc = foundCell.Offset(0, 4).Value
Me.BDM.Value = foundCell.Offset(0, 6).Value
Me.MIns.Value = foundCell.Offset(0, 7).Value
Me.EUs.Value = foundCell.Offset(0, 8).Value
Me.In.Value = foundCell.Offset(0, 9).Value
Me.Pr.Value = foundCell.Offset(0, 10).Value
Me.Qu.Value = foundCell.Offset(0, 11).Value
Me.ReCd.Value = foundCell.Offset(0, 12).Value
Me.ReOrCd.Value = foundCell.Offset(0, 13).Value
Me.Ttl.Value = foundCell.Offset(0, 5).Value
Me.Va.Value = Me.Total.Value/1.2
Me.VT.Value = Me.Total.Value - Me.Value.Value
Me.R.Value = foundCell.Offset(0, 17).Value
Me.App.Value = foundCell.Offset(0, 18).Value
Me.L1.Value = foundCell.Offset(0, 19).Value
Me.L2.Value = foundCell.Offset(0, 20).Value
Me.CY.Value = foundCell.Offset(0, 21).Value
Me.PC.Value = foundCell.Offset(0, 22).Value
Me.SN1.Value = Left(foundCell.Offset(0, 23).Value, 2)
Me.SN2.Value = Mid(foundCell.Offset(0, 23).Value, 3, 2)
Me.SN3.Value = Right(foundCell.Offset(0, 23).Value, 2)
Me.ANCT.Value = foundCell.Offset(0, 24).Value
Else
MsgBox "ID does not exist."
End If
End Sub
嘗試在查找命令之前添加一個斷點,並確保所有變量都在沒有首先加載窗體的情況下進行設置。我懷疑是因爲你指的是「Me.Search.Value」,你的表單中有一些東西阻止了這個設置,因此mysearch不會指向任何東西。直接和當地人窗口將對你調試這個有很大的幫助。 –
是我。搜索一個文本框?如果添加一個新行使其起作用,那麼將您的搜索區域擴大一行,看看它是否有效。 - .Range(「A」&.Rows.Count).End(xlUp)+1) –
@BrandonBarney感謝您的建議和John。布蘭登使用你的建議使我能夠大大縮小問題的範圍。謝謝 – MBrann