С Новым годом! Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/26: Рейтинг темы: голосов - 26, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 21.11.2014
Сообщений: 5

Добавление информации в ячейку Excel с сохранением форматирования существующего текста

21.11.2014, 15:16. Показов 4855. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую!

Есть макрос, который по клику на ячейке добавляет в неё имя пользователя. Т.е. видно, кто последним написал какой-то текст.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        If Not Intersect(Target, Range("A1:A1000")) Is Nothing Then
            With Target(1, 1)
                If IsEmpty(Target) Then
                .Value = Application.UserName & ": "
                Else
                .Value = .Value & vbLf & Application.UserName & ": "
                End If
            End With
        End If
Cancel = 0
End Sub
Но есть баг - сбивается форматирование уже имеющегося текста. Т.е. если какое-то слово в тексте выделено жирным или цветом, то при клике на ячейку произойдет не только вставка имени пользователя, но и очищение форматирования. В какую сторону копать, чтобы форматирование текста всегда сохранялось?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.11.2014, 15:16
Ответы с готовыми решениями:

Добавление текста из TextBox в ячейку EXCEL
Имеется файл с несколькими листами. Так же есть TextBox. Как сделать что бы программа определяла в какой лист добавлять данные из...

Объединение столбцов в Excel по порядку с сохранением форматирования ячеек
Здравствуйте! Данный код объединяет несколько столбцов с данными 1 2 3 1 2 3 2 3 2 3 3

Добавление данных в ячейку Excel
Добрый день нужен макрос или модуль для добавления данных в ячейку подскажите Range("A1:B1") = "test" ...

8
0 / 0 / 0
Регистрация: 21.11.2014
Сообщений: 5
21.11.2014, 15:21  [ТС]
Для наглядности приложил файл с объяснениями...
Вложения
Тип файла: xls 645654654.xls (24.0 Кб, 17 просмотров)
0
 Аватар для pashulka
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
21.11.2014, 15:47
Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("A1:A1000")) Is Nothing Then 'If Target.Column = 1
       Cancel = True 'Использовать только при необходимости
       With Target(1, 1)
            .Characters(Len(.Value) + 1).Insert _
            IIf(IsEmpty(.Value), "", vbLf) & Application.UserName & ": "
       End With
    End If
End Sub
1
0 / 0 / 0
Регистрация: 21.11.2014
Сообщений: 5
21.11.2014, 15:54  [ТС]
Cancel = False нужно, чтобы ячейка открывалась для редактирования после клика.

Макрос работает, но добавляет только 18 строк. Видимо, откуда-то возникает ограничение. Как его обойти?
0
 Аватар для pashulka
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
21.11.2014, 15:59
Для перехода в режим редактирования - ничего не нужно добавлять, ибо изначально Cancel = False

Не 18 строк, а 255 символов.
1
0 / 0 / 0
Регистрация: 21.11.2014
Сообщений: 5
21.11.2014, 16:02  [ТС]
Понял.

А как обойти ограничение в 255 символов? Это ОЧЕНЬ мало, средний размер ячейки примерно 20к символов, при ограничении 2003 экселя в 37к+.
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
21.11.2014, 16:54
перейти на версию выше 2003
http://office.microsoft.com/ru... 42495.aspx
0
 Аватар для pashulka
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
21.11.2014, 17:03
Alex77755, Более ранние версии также позволяют изменять параметры форматирования в 256(и далее) символах, но токмо вручную. При попытке же записи действий макрорекордером - выдаётся сообщение, гласящее, что "Запись невозможна."

А вообще, можно либо смириться с частичной потерей форматирования (старый вариант), либо добавлять пользователей в строки какого-нибудь скрытого листа. И, при необходимости, выводить этот список, например, в ListBox/ListView
0
0 / 0 / 0
Регистрация: 21.11.2014
Сообщений: 5
21.11.2014, 17:11  [ТС]
Перейти на новую версию не представляется возможным. Важно выводить имя в самой ячейке. Типа системы ведения инцидентов и их комментирования.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.11.2014, 17:11
Помогаю со студенческими работами здесь

Добавление в ячейку текста хранящегося в переменной
Доброго времени суток, дорогие форумчане! Есть задача сделать файл для сбора статистики. Проблема в том, что при появлении новых...

Перенос текста из TextBox в ячейку Excel
Проблема такая, TextBox многострочный, если присваивать значение ячейке листа EXCEL преносы строки дополнительно сопровождается появлением...

Перенос текста в одну ячейку Excel
Здравствуйте, уважаемые форумчане! При написании макроса возникли трудности. Необходимо перенести текст, который находится под...

Копирование текста из TextBox в ячейку таблицы Excel
Добрый день. Есть две задачи: 1) Скопировать любой текст из ячейки F4 в поле формы TextBox1 (с этим справился). 2) Скопировать...

Подставка текста в любую не активную ячейку(и) Excel
Добрый день! Только начинаю изучение VBA- поэтому очень много функций для меня пока являются тайной!!! Подскажите пожалуйста как написать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru