#string #vba #zero
#строка #vba #ноль
Вопрос:
Итак, вот проблема, с которой я никогда раньше не сталкивался. Я импортирую ISIN (например, DE0002635307) из ячейки, которая определяется как текст. Мне нужно использовать это для ссылки на ячейку с таким именем. Итак:
sub ISINWriter
dim ISIN as String
ISIN = ThisWorkbook.Sheets(i).Cells(j, 4).Value()
ThisWorkbook.Sheets(i 1).Cells(f, 4).Formula = "=" amp; ISIN
End Sub
Для большинства ISIN это работает нормально, за исключением случаев, когда в строке 4 или более нулей. Если это произойдет — например, FR0000120073 — он записывает «= FR120073» в ячейку. Он просто съедает нули ВНУТРИ строки! Есть идеи?
Я использую Excel 2010 и Windows 7.
Большое спасибо.
Ответ №1:
Если вы используете диспетчер имен, чтобы попытаться создать именованный диапазон (или, точнее, именованную формулу) с именем «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 является допустимым адресом ячейки в наши дни для листов размером 16Кх1м.
Однако первая причина, приведенная выше, может быть полезной: _FR0000120073
это допустимое имя. Не могли бы вы это использовать?
Комментарии:
1. @JakobEltz — должно быть хорошо, пока Excel не будет поддерживать столбцы 100m (я думаю, что ISINFR будет где-то около столбца 11500000000)
Ответ №2:
РЕДАКТИРОВАТЬ: удаление моего последнего ответа, чтобы это имело смысл.
В основном ваши ссылки на ячейки представляют собой буквенно-цифровое значение. Возьмем, к примеру, A1 — столбец, 1 — строка. Эта проблема возникает из-за того, что 0001 совпадает с 1. таким образом, ссылка на ячейку A001 будет такой же, как и в ячейке A1.
Похоже, что в Excel есть некоторые встроенные функции для удаления начальных нулей из ваших ссылок на ячейки.
Комментарии:
1. Я не совсем уверен, что вы имеете в виду. Мне нужно, чтобы в ячейке была ссылка на ячейку с именем FR00001234. Я не хочу, чтобы внутри ячейки было указано FR00001234.
2. @JakobEltz да, я только что понял это после публикации. Ячейки Excel начинаются с 1, поэтому ссылка на ячейку FR00001 будет той же ячейкой, что и FR1
3. Спасибо, это все-таки помогло мне. Я только что понял, что Excel на самом деле не разрешает имена ячеек, в которых содержится более трех нулей… АХ!!!!
4. @JakobEltz Я обновил свой ответ, чтобы на самом деле ответить на ваш вопрос, лол, рад, что помог.