Excel VBA .Find忽略逗号

时间:2020-01-10 10:06:12

标签: excel vba

我有一个代码在A列中搜索值。这些值是项目编号,例如4545和3605。 有时一个项目确实有多个子项目。以一个子项目为例:3605,01和3605,02等。

我使用.find查找项目的行,找到该行后,将粘贴一些数据。

问题

像4545这样的数字可以完美地工作,但是当使用逗号时,Excel似乎无法得到它。我认为他认为逗号是要点。如何让Excel知道逗号是小数点分隔符?还是还有其他问题?

这是我的代码:

    Dim Projectnumber As String
    Projectnumber = ActiveWorkbook.Sheets("Planning").Range("A6").Value2
    Dim ThisProjectRow As Range
    With Workbooks(Bureauplanner).Sheets("planning").Range("A:A")
        Set ThisProjectRow = .Find(What:=Projectnumber, LookIn:=xlValues, Lookat:=xlWhole, MatchCase:=False, Searchformat:=False)
            If Not ThisProjectRow Is Nothing Then
            End If
    End With

2 个答案:

答案 0 :(得分:0)

对,因此,罪魁祸首是String数据类型。您提到

“列A在值中……”

将查找值存储到String数据类型中时,这意味着您正在比较两种不同的数据类型> A DoubleString。我想这在VBA中不太适合。

因此,这里有两种方法可以解决此问题:

1)。将A列转换为String格式的值。

或者。

2)。String变量替换为Double> Dim ProjectNumber As Double

答案 1 :(得分:0)

或者您也可以这样做...使用CDbl()寻找双精度值:

Dim Projectnumber As String
 Projectnumber = ActiveWorkbook.Sheets("Planning").Range("A6").Value2
 Dim ThisProjectRow As Range
 With Workbooks(Bureauplanner).Sheets("planning").Range("A:A")
     Set ThisProjectRow = .Find(What:=CDbl(Projectnumber), LookIn:=xlValues, Lookat:=xlWhole, MatchCase:=False, Searchformat:=False)
         If Not ThisProjectRow Is Nothing Then
         End If
End With
相关问题