Excel заставляет Text NumberFormat в ячейке с формулой - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь сохранить формулу в ячейке.В ячейке NumberFormat установлено значение "@", т. Е. Текст.Когда я делаю:

TargetSheet.Cells(Row, Col).Formula = "=A7"

И у A7 есть "1805R03-01", я получаю "=A7", отображаемый в ячейке.Несмотря на то, что я считаю, что вам следует разрешить определять формулы для поля в формате Text, если вы установите его с помощью свойства Formula, я изменил код на:

(1)  TargetSheet.Cells(Row, Col).NumberFormat = "General"
(2)  TargetSheet.Cells(Row, Col).Formula = "=A7"

И это в результате дало мне то, что я хотел, так как теперь моя ячейка отображает правильное значение "1805R03-01", но Excel снова установил формат чисел на «@», так что, если я нажму клавишу ввода в этой ячейке, дисплей вернется к "=A7".Я мог бы повторно добавить строку (1) как и дополнительную строку (3) в моем коде выше, но это просто означает, что я остановлю преобразование моей формулы обратно в текст один раз, если дважды нажать клавишу ввода в этой ячейке, то результат будет "=A7".Как мне остановить Excel от принудительного форматирования числа в ячейке?Ячейка отображается правильно, когда я вручную возвращаю формат для нее "General", поэтому форматирование числа не требуется.

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Если числовой формат ячейки A7 равен text, попробуйте установить его на general.Затем повторно введите формулу в cells(row, col) и проверьте, если вы получите другие результаты.

Зависимые ячейки (в контексте аудита формул), кажется, наследуют NumberFormat своих прецедентов - если NumberFormat ячейки прецедента не являетсяgeneral.

0 голосов
/ 28 сентября 2018

Я не уверен, поможет ли это, но я сталкивался с подобной проблемой в прошлом, когда Excel автоматически переключал формат чисел в соответствии с его собственным мнением.

Итак, я сделал это: скажем, у меня естьдва столбца

A          B
abc       123
asuh      412
auw       9781
ija       124

Я бы установил номер другого столбца, столбца C, как общий

Range("C:C").Select
Selection.NumberFormat = "general" 

, а затем скопировал в него A или B.В вашем случае было бы автоматизировать код на него.

И он не превратился снова ни в текст, ни в число.По крайней мере, для меня.

...