2017-04-18 51 views
0

嗨,任何和所有愿意协助。左侧功能VBA

我似乎在VBA中的左侧功能有问题。我正在寻找使用参考号进行搜索,然后用户表单将浏览存储在表中的数据。在用户表单的1部分中,我有4个文本框用于查看1个单元格的不同部分。麻烦的是,我得到了“FO”的答案,对于每个参考实际上在我的代码中查看fo请参阅下面。

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.BDM.Value = foundCell.Offset(0, 6).Value 
     Me.Mrch.Value = foundCell.Offset(0, 7).Value 
     Me.EUs.Value = foundCell.Offset(0, 8).Value 
     Me.Pr.Value = foundCell.Offset(0, 10).Value 
     Me.Qty.Value = foundCell.Offset(0, 11).Value 
     Me.RsnCd.Value = foundCell.Offset(0, 12).Value 
     Me.ReOrCd.Value = foundCell.Offset(0, 13).Value 
     Me.Tot.Value = foundCell.Offset(0, 5).Value 
     Me.V.Value = Me.Total.Value/1.2 
     Me.VT.Value = Me.Total.Value - Me.Value.Value 
     Me.Req.Value = foundCell.Offset(0, 17).Value 
     Me.Appl.Value = foundCell.Offset(0, 18).Value 
     Me.Line1.Value = foundCell.Offset(0, 19).Value 
     Me.Line2.Value = foundCell.Offset(0, 20).Value 
     Me.Ci.Value = foundCell.Offset(0, 21).Value 
     Me.Poe.Value = foundCell.Offset(0, 22).Value 
     Me.SC1.Value = Left(foundCell.Offset(0, 23).Value, 2) 
'this is where in code I am receiving fo from the foundcell everytime  
    Else 
     MsgBox "ID does not exist." 
    End If 

    End Sub 

我一直以为留在VBA工作一样的Excel是left(a2, 2)例如

+2

你能举个例子的问题,并与代码没有问题'foundCell.Offset(0,23).Value'的整个值的值? – steenbergh

+1

@steenbergh它不同,但总是有10个字符长......所以如果我输入一个参考号码105763,应该给出= GCA1212BCF的左(*,2)。如果这有道理? – MBrann

+3

不应该有任何原因,为什么代码不能从查看它的工作。在foundcell上返回“fo”的唯一方法是如果在“foundcell.Offset ...”周围有双引号,或者如果“FO”在单元格内。尝试在该行上添加一个断点,并在即时窗口中使用“Debug.Print”来检查foundcell.Offset(0,23)的值。值 –

回答

0

不确定为什么,但简单地重新启动Excel的解决