Как заставить Excel проигнорировать апостроф в начале ячейки

Попробуйте этот пример , который просто устанавливает его на черный цвет или белый цвет в зависимости от среднего числа r, g и значений b. Также хороший для тестирования! Замените лучшим алгоритмом там при нахождении случаев, которые не работают очень хорошо.

 
 
 
 
 

Some text

10
задан Stevoisiak supports Monica 14 December 2017 в 18:36
поделиться

4 ответа

Боюсь, что апостроф ' - это специальный символ для Excel, когда он появляется как первый символ в найденной вами ячейке. Он указывает Excel обрабатывать остальную часть строки как текст, чтобы вы могли ввести в ячейку что-то вроде '34,2 , и он будет рассматривать ее как строку вместо числа (для форматирования и т. on).

Я предлагаю сделать что-то похожее на то, что вы предложили, за исключением того, что там, где вы помещаете его в Excel, проверьте первый символ и добавьте дополнительный ', если он уже есть .

В качестве альтернативы, вы можете добавить апостроф ко всем значениям - если вы хотите, чтобы они все были как текст. Таким образом, вам не потребуется дополнительная проверка первого символа.

10
ответ дан 3 December 2019 в 22:37
поделиться

попробуйте вместо этого targetcell.Value . .Formula - это формула, отображаемая на панели формул, а .Value - это оцененное значение ячейки.

Итак, я предполагаю, что вы бы использовали . Формула также присутствует в исходном коде. Изменение этого должно сработать.

РЕДАКТИРОВАТЬ: Хорошо, это не сработало (смущено).

Excel обрабатывает начальную одинарную кавычку специально ... так, что даже непонятные свойства ячейки / диапазона не имеют доступа. Единственный обходной путь, который я смог найти, по сути тот же, что вы думали изначально. Вот и:

If VarType(cell) = 8 And Not cell.HasFormula Then
 GetFormulaI = "'" & cell.Formula
Else
 GetFormulaI = cell.Formula
End If
1
ответ дан 3 December 2019 в 22:37
поделиться

Вы можете попробовать отложить одинарную кавычку для ваших текстовых полей ('' '' + dbField) в вашем запросе, чтобы для полей со встроенными одинарными кавычками ваш запрос возвращал:

"''stuff in single quotes'"

который при помещении в ячейку Excel преобразуется в:

"'stuff in single quotes'"

для символов, не заключенных в кавычки, вы получите:

"'stuff that wasn't in quotes"

, который при помещении в ячейку Excel преобразует в:

"stuff that wasn't in quotes"

Стоит попробовать. : -)

0
ответ дан 3 December 2019 в 22:37
поделиться

Посмотрите на свойство PrefixCharacter объекта Range , которое соответствует этой ячейке

. Из справки:

Если Свойство TransitionNavigKeys False , этот префиксный символ будет ' для текстовой метки или пустое. Если Свойство TransitionNavigKeys имеет значение True , этот персонаж будет 'для выровненная по левому краю метка "для метка, выровненная по правому краю, ^ для метка по центру, \ для повторяющегося ярлык или пустой.

Часть TransitionNavigKeys относится к совместимости с Lotus 1-2-3, поэтому, скорее всего, это будет False

Ответ основан на статье по адресу:

http://excel.tips.net/Pages/T003332_Searching_for_Leading_Apostrophes.html

(предупреждение: может появиться немного раздражающее всплывающее окно)


редактировать: на самом деле это, вероятно, не будет использоваться, потому что PrefixCharacter доступен только для чтения: (

edit2: Я был прав в первый раз. PrefixCharacter заполняется только в том случае, если значение, добавленное к ячейке, начинается с ', поэтому просто прочтите PrefixCharacter плюс значение и объединение. Пока TransitionNavigKeys равно False , то есть

4
ответ дан 3 December 2019 в 22:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: