Excel VBA. Find игнорирует запятые - PullRequest
1 голос
/ 10 января 2020

У меня есть код, который ищет значение в столбце A. Значения - это номера проектов, такие как 4545 и 3605. Иногда у проекта есть несколько подпроектов. Подпроект определяется как пример: 3605,01 и 3605,02 et c ..

Я использую .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 голосов
/ 10 января 2020

Или вы можете сделать это наоборот ... Поиск двойного значения с помощью 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
0 голосов
/ 10 января 2020

Правильно, значит, ваш виновник - тип данных String. Вы упомянули

«Столбец А в значениях ...»

Пока вы сохраняете значение поиска в типе данных String, это означает, что вы сравниваете два разных типа данных> A Double и String. Я думаю, что это не очень хорошо с VBA.

Таким образом, есть два способа преодолеть эту проблему здесь:

1). Превратить столбец A в String отформатированные значения.

или.

2). Заменить переменную String на Double> Dim ProjectNumber As Double

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...