VBA没有正确地提取格式

时间:2017-12-07 11:50:16

标签: excel excel-vba userform vba

我创建了一个用户表单,在输入引用时将读取该引用行中的所有信息。

我在该行中有一些格式为00-00-00的数据,就像银行排序代码一样。我发现的问题是,虽然单元格在您查看时显示00-00-00,但当我单击用户表单上的查找按钮时,它将显示为空白。

有人可以帮我解决这个问题吗?下面是我的编码样本。我所涉及的代码的行是VL1,VL2和VL3。任何这些序列= 0都不会通过。

Private Sub Find_Click()

Dim searchRange As Range
Dim foundCell As Range
Dim mysearch As String

mysearch = Search.Value

With Sheets("Master Data")
    Set searchRange = Sheets("Master Data").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
    RDesc = foundCell.Offset(0, 4).Value
    BD.Value = foundCell.Offset(0, 6).Value
    Ml.Value = foundCell.Offset(0, 7).Value
    Es.Value = foundCell.Offset(0, 8).Value
    In.Value = foundCell.Offset(0, 9).Value
    Pr.Value = foundCell.Offset(0, 10).Value
    Qt.Value = foundCell.Offset(0, 11).Value
    RC.Value = foundCell.Offset(0, 12).Value
    ROC.Value = foundCell.Offset(0, 13).Value
    Tal.Value = foundCell.Offset(0, 5).Value
    Vu.Value = Me.Total.Value / 1.2
    VT.Value = Me.Total.Value - Me.Value.Value
    R.Value = foundCell.Offset(0, 17).Value
    Ap.Value = foundCell.Offset(0, 18).Value
    L1.Value = foundCell.Offset(0, 19).Value
    L2.Value = foundCell.Offset(0, 20).Value
    Cy.Value = foundCell.Offset(0, 21).Value
    P.Value = foundCell.Offset(0, 22).Value
    VL1.Value = Mid(foundCell.Offset(0, 23).Value, 1, 1) & Mid(foundCell.Offset(0, 23).Value, 2, 1)
    VL2.Value = Mid(foundCell.Offset(0, 23).Value, 3, 1) & Mid(foundCell.Offset(0, 23).Value, 4, 1)
    VL3.Value = Mid(foundCell.Offset(0, 23).Value, 5, 1) & Mid(foundCell.Offset(0, 23).Value, 6, 1)
    Ar.Value = foundCell.Offset(0, 24).Value
    Processed.Value = foundCell.Offset(0, 25).Value
    EntryDate.Value = foundCell.Offset(0, 1).Value
    RDat.Value = foundCell.Offset(0, 27).Value
    StartDate.Value = foundCell.Offset(0, 26).Value

Else
     MsgBox "Uh oh, things have gone a little sideways and the reference number " & Search.Value & " cannot be located. Please try another reference!"
End If

End Sub

1 个答案:

答案 0 :(得分:1)

您可以替换它:

 Dim NewValue as String
 NewValue =Format(foundCell.Offset(0, 23).Value, "00-00-00")
 VL1.Value = Mid(NewValue , 1, 2)
 VL2.Value = Mid(NewValue , 4, 2)
 VL3.Value = Mid(NewValue , 7, 2)

对此:

{{1}}