Member 13658733 Ответов: 1

Цель состоит в том, чтобы отделить этот вид строки от конкретного значения "INPR0002268" означает, что как только вы найдете 1-й ноль, строка должна напечатать "0002268"


Поэтому я пытаюсь прочитать строку из определенной ячейки, а затем разбить ее с нуля и распечатать значение в другой ячейке

Проблема-> в локальном окне, когда я запускаю код, он показывает правильное значение "0002268", но когда я вставляю то же самое значение в другую ячейку, он показывает "2268".Пожалуйста, дайте мне знать, какая может быть возможная причина.

Sub newid()

Dim FirstZero As Long
Dim Name As Variant

Sheet2.Activate

Columns("E:E").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("E1").Value = "Orgnization ID"

Numberofrow = Cells(Rows.Count, 1).End(xlUp).Row

For i = 1 To Numberofrow

Y = Range("A1").Offset(i, 0).Value
Lengthofstring = Len(Y)

FirstZero = InStr(1, Y, 0)
Debug.Print FirstZero

Name = Right(Y, Lengthofstring - (FirstZero - 1))

Range("A1").Offset(i, 0).Offset(0, 4).Value = Name

Next i

End Sub


Что я уже пробовал:

Sub newid()

Dim FirstZero As Long
Dim Name As Variant

Sheet2.Activate

Columns("E:E").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("E1").Value = "Orgnization ID"

Numberofrow = Cells(Rows.Count, 1).End(xlUp).Row

For i = 1 To Numberofrow

Y = Range("A1").Offset(i, 0).Value
Lengthofstring = Len(Y)

FirstZero = InStr(1, Y, 0)
Debug.Print FirstZero

Name = Right(Y, Lengthofstring - (FirstZero - 1))

Range("A1").Offset(i, 0).Offset(0, 4).Value = Name

Next i

End Sub

1 Ответов

Рейтинг:
12

OriginalGriff

Потому что это число - и если столбец не отформатирован как текст или число не предваряется кавычкой, Excel будет рассматривать его как число. И числа не имеют ведущих нулей...
Префикс первого 0 с кавычкой, и Excel должен рассматривать его как текст.