Я просто провожу день, чтобы понять, почему формула не работает так, как ожидалось.Я пытался создать таблицу данных из внешнего источника.
Сбор данных X = период (текст), Y = код (номер), Z = количество (курс) Первая строка = Y, Первый столбец =Y, data = Z Данные собираются по периоду и коду.Если код не найден в диапазоне, код будет добавлен в следующую доступную ячейку в первой строке.
Я хочу показать код в виде 3-значного формата, поэтому я отформатировал диапазон, имеякоды (VBA) .Numformat = "000" Я хочу отобразить коды в виде фиксированного кода из 3 цифр, поэтому я применил инструкцию VBA для форматирования диапазона до .NumberFormat = "000"
.При импорте новой строки данных проверяется, существует ли код в таблице.Если нет, код добавляется в следующую доступную пустую ячейку в первой строке.Для этой цели используется следующая функция:
Public Function SearchValCol(lngSearch) As Long
'Search a a specific value in a column and return the column number if found.
Dim Rng As Range
With ws_per_tot.Range("1:1")
Set Rng = .Find( _
What:=lngSearch, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
Lookat:=xlWhole, _
searchorder:=xlByColumns, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)
End With
If Not Rng Is Nothing Then
SearchValCol = Rng.Column
End If
End Function
Теперь при форматировании ячеек «000» происходит нечто странное.Когда ячейка отформатирована как «стандартная», код найден, когда отформатирован как «000», это не так.Кроме того, если применяется формат «000», Excel показывает, что используется «специальное форматирование»
Я прочитал, что существует проблема с поискомзначения в отформатированных ячейках и предположим, что это также вызвало мое раздражение сегодня.Я настоятельно предпочитаю отключить специальное локальное форматирование.Вероятность того, что я буду использовать их, составляет 0,0001%.У кого-нибудь есть идея?
Art.