Как получить значение ячейки Excel в VBA, отформатированное в рабочем листе? - PullRequest
16 голосов
/ 04 августа 2011

Мне нужно сохранить ведущие нули в списке чисел. Числа добавляются вот так (в цикле, но это всего лишь пример с использованием (1, 1):

Set cel = Sheet.worksh.Cells(1, 1)
cel.ColumnWidth = 10
cel.Value = e.Name
cel.NumberFormat = "0000"

Где e.Name - это число, что-то вроде "0720". Это отображается на листе просто отлично, но если я сделаю что-то вроде этого:

Msgbox Sheet.worksh.Cells(1, 1).Value

Я получаю «720». Мне нужно, чтобы это было "0720", я знаю, что могу проверить, используя Len() и добавить нули таким образом, но мне было интересно, если бы был более прямой подход с объектом Range, который бы сделал это для меня.

Ответы [ 3 ]

25 голосов
/ 04 августа 2011

Вы путаете число с его текстовым представлением.

Вам нужно свойство .Text, а не .Value, но тогда, у вас могут быть проблемы с ним .

13 голосов
/ 04 августа 2011

Используйте это:

Msgbox Format(Sheet.worksh.Cells(1,1).Value, "0000")
7 голосов
/ 05 августа 2011

Еще лучше, если вы не уверены, какой формат:

Формат Msgbox (Sheet.worksh.Cells (1,1). Значение, Sheet.worksh.Cells (1,1).NumberFormat)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...