1

Тема: Задать значение "Пустой строки"

Добрый день, подскажите пожалуйста по интересующему вопросу: в документе (шаблон Word) имеются поля с пользовательскими свойствами (такие как Раздел №, Часть №, Книга №) возможно такое, что не все эти свойства будут заполнены . Нужно из этих свойств собрать их номера в отдельную строку (при помощи VBA). Как написать условие, если одно из свойств не заполнено (пустое), чему оно равно? Вот пример как я пишу:
If wdProp("Раздел №") = "" Then strVol = strSubsection & strPart & strBook
думал что кавычки ("") будут обозначать пустоту, но это не работает. Как задать значение пустой строки?

2

Re: Задать значение "Пустой строки"

Все разобрался, нужно было добавить пробел в кавычки

3

Re: Задать значение "Пустой строки"

Теперь обратный вопрос, как задать значение заполненной (неизвестно чем-либо) строки?

4

Re: Задать значение "Пустой строки"

Возможно, вам поможет оператор "не равно", который обозначается как "<>"
смысл операции: "переменная не равна нулю"

5

Re: Задать значение "Пустой строки"

На мой взгляд лучше производить проверку на  длину строки, у которой обрезаны все пробелы:

Len(Trim(wdProp("Раздел №"))) > 0   -->ИСТИНА, если в строке есть хоть один символ, отличный от пробела.
Len(Trim(wdProp("Раздел №"))) = 0   -->ИСТИНА, если строка содержит только пробелы.

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

6

Re: Задать значение "Пустой строки"

Спасибо за советы, еще такой вопрос будет: имеется комбинированный список с Именем.Отчеством Фамилией (например - В.П. Васильев), как из этого списка выцепить только Фамилию? Заранее спасибо.

7

Re: Задать значение "Пустой строки"

akoks пишет:

Теперь обратный вопрос, как задать значение заполненной (неизвестно чем-либо) строки?

Можно использовать свойство Value:

Public Sub Properties1()
    Dim D As Word.Document
    Set D = ActiveDocument
    D.BuiltInDocumentProperties(wdPropertyTitle).Value = "Примеры макросов 1"
End Sub

Встроенные константы для обращения к свойствам документа можно найти здесь:
внешняя ссылка
Также см.: внешняя ссылка

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

8

Re: Задать значение "Пустой строки"

С этим разобрался, спасибо. Теперь вопрос с ComboBox'ом: в нем даны значения или пустая строка для ввода (И.О. Фамилия). Эти значения вставляются в одно поле как есть, а в другое поле должны вставляться только Фамилии из этого списка (либо которые были введены в пустую строку в том же формате (И.О. Фамилия)). Вопрос в том как это сделать? Что-то типа: Текст минус пять первых символов. Как это задать?

9

Re: Задать значение "Пустой строки"

akoks пишет:

С этим разобрался, спасибо. Теперь вопрос с ComboBox'ом: в нем даны значения или пустая строка для ввода (И.О. Фамилия). Эти значения вставляются в одно поле как есть, а в другое поле должны вставляться только Фамилии из этого списка (либо которые были введены в пустую строку в том же формате (И.О. Фамилия)). Вопрос в том как это сделать? Что-то типа: Текст минус пять первых символов. Как это задать?

Попробуйте как-то так:

Public Sub String1()
    Dim String1, String2 As String
    Dim x As Integer
    String1 = Trim("И.И. Иванов")
    x = Len(String1)
    String2 = Right(String1, x - 5)
    MsgBox (String2)
End Sub

или

Public Sub String1()
    Dim String1, String2 As String
    Dim x As Integer
    String1 = Trim("Иванов И.И.")
    x = Len(String1)
    String2 = Left(String1, x - 5)
    MsgBox (String2)
End Sub
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

10

Re: Задать значение "Пустой строки"

Попробуйте как-то так:

Public Sub String1()
    Dim String1, String2 As String
    Dim x As Integer
    String1 = Trim("И.И. Иванов")
    x = Len(String1)
    String2 = Right(String1, x - 5)
    MsgBox (String2)
End Sub

или

Public Sub String1()
    Dim String1, String2 As String
    Dim x As Integer
    String1 = Trim("Иванов И.И.")
    x = Len(String1)
    String2 = Left(String1, x - 5)
    MsgBox (String2)
End Sub

Начал разбираться с функциями Trim и Len  наткнулся на функцию Mid которая для моей задачи подходила как нельзя лучше в результате получилось следующее:

Sub Familiya()
    Dim strFamiliya As String
    strFamiliya = Mid (UserForm1.cmbGIPs.Text, 6)
    wdProp("Фамилия") = strFamiliya
End Sub

11

Re: Задать значение "Пустой строки"

akoks пишет:

Начал разбираться с функциями Trim и Len  наткнулся на функцию Mid которая для моей задачи подходила как нельзя лучше в результате получилось следующее:

Sub Familiya()
    Dim strFamiliya As String
    strFamiliya = Mid (UserForm1.cmbGIPs.Text, 6)
    wdProp("Фамилия") = strFamiliya
End Sub

Функцию Mid можно использовать тоже. smile

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.