Каково значение поля текстовой формы Word Legacy, если ничего не введено?

У меня есть форма на основе Word, которую заполняет пользователь, и она включает устаревшие текстовые поля формы. Когда они не заполнены, эти формы возвращают то, что оказывается в Excel (как на рабочем листе), равным пяти пробелам. Если пользователь ничего не вводил, я хочу, чтобы он был пустым. Однако, хоть убей, я не могу понять, что на самом деле означают эти «пять пробелов» с точки зрения персонажей. Совершенно очевидно, что это не пять пробелов, и я не знаю о табуляции с пятью пробелами, которую можно вызвать с помощью Chr(). Как я могу узнать, что Word на самом деле возвращает из этих незаполненных полей формы?


person Michael Smith    schedule 05.05.2020    source источник
comment
For x=1 to Len(theValue): Debug.Print Asc(Mid(theValue, x, 1)): Next x сообщит вам коды символов для каждого из 5 символов. theValue - это то, что вы прочитали из поля формы   -  person Tim Williams    schedule 05.05.2020
comment
Ты Находка. Я пытался решить проблему, рассматривая ее как единое целое, не понимая, что я могу перебрать каждый символ в значении, сколько бы их ни было. Я попробую сейчас.   -  person Michael Smith    schedule 05.05.2020
comment
@TimWilliams Это дает мне 32 за каждого. Очень интересно.   -  person Michael Smith    schedule 05.05.2020
comment
Почему вы решили, что это явно не пять пробелов?   -  person Tim Williams    schedule 05.05.2020
comment
@TimWilliams Я пытался исключить все незаполненные поля, написав оператор типа If MyVal <> " " Then..., но это не удалось (текст в двойных кавычках состоит из пяти пробелов). Есть мысли, почему так?   -  person Michael Smith    schedule 05.05.2020
comment
Я бы, вероятно, использовал что-то более похожее на myVal = Trim(myVal): If Len(myVal)>0 Then - это позаботится о регистре со всеми пробелами и имеет дополнительное преимущество, заключающееся в удалении любых дополнительных пробелов, которые мог ввести пользователь.   -  person Tim Williams    schedule 06.05.2020
comment
Да, я уже использую Trim в другом месте для некоторых других ответов и сделаю то же самое в этом случае. Большое спасибо, Тим.   -  person Michael Smith    schedule 06.05.2020
comment
Как результат вашего поля формы на самом деле попадает в Excel? Предполагая, что ваше устаревшее поле формы на самом деле является исходным полем формы, не относящимся к типу ActiveX, Word отображает 5 символов U+2002 en-space, которые выглядят как «знаки степени», что может объяснять их явно не пробелы. Если вы скопируете их в ячейку Excel (скажем, A1), они будут выглядеть как пробелы, но если вы проверите их с помощью такой формулы, как =КОД(A1), вы получите 63 (?). Для незаполненного поля фактическим .Result поля является строка нулевой длины.   -  person    schedule 06.05.2020


Ответы (1)


Каждый из пяти символов Asc(32).

person Michael Smith    schedule 05.05.2020