У меня есть следующий код, который обрабатывает событие двойного щелчка на одном из моих столбцов. В основном это столбец Notes, поэтому, когда пользователь дважды щелкает по нему, он выводит ввод и выводит примечание. Затем код VBA добавляет дату и вставляет ее в ячейку. Я хотел, чтобы Даты были выделены жирным шрифтом.Excel VBA Формирование потерянного при вставке символов
Однако, когда я впервые ввел комментарий, ячейка верна. Как это
23/08/2013: Привет там
, когда я дважды щелкните ячейку снова и ввести «Привет снова» вся клетка идет полужирный
23/08/2013: Привет там
23/08/2013: Привет снова
Я думаю, это потому, что я сбросить весь текст ячейки, а не добавление к тексту .. первоначально, следовательно, проигранного оригинал е ormatting.
Может ли кто-нибудь пролить идеи на это. Единственный способ, с помощью которого я мог бы заставить его работать, - это просмотреть и найти символ ctrl (10) и форматировать его таким образом, но его путь сверху.
пожеланиями D
Option Explicit
Const STATUS_COL As Integer = 10
Const NOTES_COL As Integer = 13
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim newVal As String
Dim strNote As String
Dim lngPos As Long
If Target.Count > 1 Then GoTo exitHandler
Application.EnableEvents = False
On Error Resume Next
If Target.Column = NOTES_COL Then 'Add a note
lngPos = Len(Target.Value)
strNote = InputBox(Prompt:="Enter Note", _
Title:="Notes", Default:="")
If (Len(Trim(strNote)) > 0) Then
If Target.Value = "" Then
newVal = Date & ": " & strNote
Else
newVal = Target.Value + Chr(10) & Date & ": " & strNote
End If
Target.Value = newVal 'set the new value
Target.Characters(Start:=lngPos + 1, Length:=11).Font.Bold = True
End If
End If
exitHandler:
Application.EnableEvents = True
End Sub
Вместо того, чтобы сбросить все значения ячейки, можно добавить содержимое, установив 'символов (старт: = [начать в конце существующего текста], длина: = [длина вашего нового текста]). Text = «content to add» ' –
ok cool Tim ... Я думаю, это было то, что я искал. Я попытался создать еще один Range на лету и сформировать его и добавить его в целевой диапазон, но получил те же результаты, что и выше, поэтому я попробую ваш – Doiremik
привет Тим ..., который работал с удовольствием и сохранил форму. Я знал, что я делаю неправильно, устанавливая всю ценность ... просто не знал, как сделать это правильно lol :-) Если вы добавите это в качестве ответа, я сразу приму его. Спасибо – Doiremik