VBA ест мои нули ВНУТРИ строки? - PullRequest
2 голосов
/ 03 ноября 2011

Итак, вот проблема, с которой я никогда не сталкивался раньше.Я импортирую ISIN (например, DE0002635307) из ячейки, которая определена как текст.Мне нужно использовать это для ссылки на ячейку с таким именем.Итак:

sub ISINWriter

dim ISIN as String

ISIN = ThisWorkbook.Sheets(i).Cells(j, 4).Value()

ThisWorkbook.Sheets(i+1).Cells(f, 4).Formula = "=" & ISIN

End Sub

Для большинства номеров ISIN это работает нормально, за исключением случаев, когда в строке 4 или более нулей.Если это происходит - например, FR0000120073 - в ячейку записывается «= FR120073».Он просто ест нули ВНУТРИ строки!Есть идеи?

Я использую Excel 2010 и Windows 7.

Большое спасибо.

Ответы [ 2 ]

2 голосов
/ 03 ноября 2011

Если вы используете Диспетчер имен, чтобы попытаться создать именованный диапазон (или, точнее, именованную формулу) с именем «FR0000120073», то вы должны обнаружить, что получили ошибку.Что-то вроде (из Excel 2007 на моей машине):

The name that you entered is not valid.
Reasons for this can include:
- The name does not begin with a letter or an underscore
- The name contains a space or other invalid characters
- The name conflicts with an Excel built-in name or the name of another object in the workbook

Подсказка в последней части третьей причины.FR120073 является действительным адресом ячейки в наши дни для ячеек размером 16Kx1m.

Первая причина, приведенная выше, может быть полезной, однако: _FR0000120073 - это действительное имя.Не могли бы вы использовать это?

1 голос
/ 03 ноября 2011

РЕДАКТИРОВАТЬ: удаление моего последнего ответа, так что это имеет смысл.

В основном ваши ссылки на ячейки являются буквенно-цифровым значением.Возьмем A1, например, A - столбец 1 - строка.Эта проблема возникает из-за того, что 0001 совпадает с 1. поэтому ссылка на ячейку A001 будет такой же, как и ячейка A1.

Похоже, что в Excel есть некоторые встроенные функции для удаления начальных 0 из ваших ссылок.к клеткам.

...