我有一个代码在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
答案 0 :(得分:0)
对,因此,罪魁祸首是String
数据类型。您提到
“列A在值中……”
将查找值存储到String
数据类型中时,这意味着您正在比较两种不同的数据类型> A Double
与String
。我想这在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