У меня есть столбец из примерно 450 000 9-значных чисел, которые используются для определения вывода другого столбца. Почему процесс распознает девятизначные числа, начинающиеся с номера 3, но не 0?Проблема с форматированием номера VBA Excel
Sub Anything()
Dim rng As Range, cl As Range
Set rng = Range("Y2:Y" & Range("Y" & Rows.Count).End(xlUp).Row)
For Each cl In rng.Cells
Dim outCell1 As Range
Set outCell1 = cl.Offset(0, 54)
Select Case Trim(cl.Value)
Case "001019147"
outCell1.Value = "thing1"
Case "311019147"
outCell1.Value = "thing2"
Все ячейки в столбце содержат 9-разрядные числа и хотя есть около 450 000 клеток в колонке только около 2000 обрабатываются. Любой вход?
наверняка тип данных кастинг проблема. система может отличать ваш cl.value с числовым типом данных, отбрасывающим 00. В excel наверху, если вы поместите 'OPTION STRICT', он покажет вам, происходит ли это, выкинув ошибку. Каков тип данных? Всегда ли это число? если это так, убедитесь, что обе стороны являются числовыми, специально литая их как таковые. – xQbert
Моя догадка заключается в том, что «001019147» - это число, отображаемое с ведущими нулями, поэтому cl.Value действительно 1019147. –
Excel действительно любит автоматическое создание ячеек. Ведущие нули особенно проблематичны. Трудно сказать, не зная, как вы отформатировали эти ячейки. – JRQ