Ошибка заголовка Excel VBA

Мне нужна ваша помощь в отношении ошибки в моем файле Excel. Мы используем инструмент Jama и импортировали оттуда некоторые элементы, такие как заголовок, идентификатор, имя и т. Д. Дело в том, что, например, когда заголовок равен 7,9, Excel генерирует 7,9. Я проверил последовательность/заголовок, как он хранится в Jama, и все в порядке. (Заголовок там как положено, 7.9). Единственное решение, которое пришло мне в голову, это использовать .DecimalSeparatior. Он превращает запятую в точку, но заголовок сохраняется в правой части ячейки, поскольку он не считается заголовком (наверное, извините, я совершенно новичок в vba). У меня другие заголовки тоже в формате 3.14.5.8

Пожалуйста помоги! Вот некоторый код, относящийся к заголовку/последовательности. Должен ли я что-то добавить сюда? Если да, то что?

sPastCellContant = rCell.Offset(0, cHeading - 1)
rCell.Offset(0, cHeading - 1) = oResponseDataLocation("sequence")
If rCell.Offset(0, cHeading - 1) <> sPastCellContant Then
    rCell.Offset(0, cHeading - 1).Interior.ColorIndex = ChangedColour
End If

person Community    schedule 13.03.2017    source источник


Ответы (1)


Если 7.9 для вас не число с плавающей запятой, а нумерация, то вам следует отформатировать ячейку в текстовом формате, прежде чем поместить эту нумерацию в качестве содержимого в ячейку.

Пример:

...
rCell.Offset(0, cHeading - 1).NumberFormat = "@"
rCell.Offset(0, cHeading - 1).Value = oResponseDataLocation("sequence")
...

Теперь, если oResponseDataLocation("sequence") равно "7.9", 7.9 будет текстовым, а не числовым содержимым.

Предыстория заключается в том, что даже если Excel использует настройки локали, где запятая является десятичным разделителем, VBA всегда будет использовать локаль en_US с точкой в ​​качестве десятичного разделителя.

person Axel Richter    schedule 13.03.2017