Подскажите пожалуйства как в Word

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
lebmax
Сообщения: 14
Зарегистрирован: 21 сен 2007, 09:45

Подскажите пожалуйства как в Wordе, в таблице в выделенном диапазоне вставить один знак(слово)
Serge_Bliznykov
Сообщения: 375
Зарегистрирован: 31 авг 2007, 03:06

lebmax, а чем макрорекордер не устраивает?
вот, им записалось (вставляется символ "—"):

Код: Выделить всё

Selection.TypeText Text:="—"
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

Вопрос: Мне надо работать с одним выделенным столбцом, на пример округлить, как бы это сделать

Ответ:Пройтись в цикле по ячейкам ...http://forum.developing.ru/showpost.php ... ostcount=8
Аватара пользователя
AlexEL
Сообщения: 24
Зарегистрирован: 23 авг 2008, 06:44
Контактная информация:

Dim C as Cell
For Each C in Selection.Range.Cells
' делаем что надо в C.Range
next C
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

А выбрать колонку можно например так:

Код: Выделить всё

'Выбираем 3-ю колонку второй таблицы
ActiveDocument.Tables(2).Columns(3).Select
Андрей Энтелис,
aentelis.livejournal.com
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

Для получения округлённого значения столбца слева можно поместить в каждую ячейку столбца справа от данных следующий код поля WORD
{=ROUND(SUM(LEFT);1)}
Это округление до одного знака поле запятой
Естесвенно, что после изменения данных вычисляемые поля надо обновлять
Андрей Энтелис,
aentelis.livejournal.com
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

Код: Выделить всё

Public Sub ОкруглениеТретьегоСтобцаПервойТаблицы()
    Dim i As Long
    Dim s As String
    With ActiveDocument.Tables(1)
       'Предполагаем что в первой строчке таблицы заголовок
        For i = 2 To .Rows.Count
            s = .Cell(i, 3).Range.Text                        'берём текст из ячейки
            s = Trim$(Replace(s, Chr(7), vbNullString)) ' убираем хвост ячейки и лишние пробелы
            s = Replace(s,Chr(13),vbNullString)
            s = Replace(s, ".", Format(0, "#.#"))       'нормализуем национальный десятичный разделитель
            s = Format$(Round(CSng(s), 1), "0.#")  'конвертируем в Signed, округляем и конвертируем в строку
            .Cell(i, 3).Range.Text = s                        'изменяем значение ячейки
        Next i
    End With
End Sub
Андрей Энтелис,
aentelis.livejournal.com
Ответить