Я пытаюсь добавить текст в ячейку excel с помощью VBA. В настоящее время я использую:
Range("A1").Characters(Len(Range("A1")) + 1).Insert ("text")
Это отлично работает для ячеек с текстом, но если ячейка содержит только числа (целые числа), выдается ошибка:
Run-time error '1004' Insert method of Characters class failed
Части текста в ячейке выделены разными шрифтами или выделены жирным шрифтом, и мне нужно сохранить их такими.
Я также пытался изменить NumberFormat ячейки на общий, но это не помогает:
Range("A1").NumberFormat = "@"
Если кто-то знает способ добавить текст в ячейку, содержащую только целые числа с разными шрифтами, ответьте.
В отличие от строк, ячейки, которые содержат фактические числа (но не строки, которые выглядят как числа), не можешь имеют формат, применяемый к отдельным символам.
Поэтому разделите обработку на основе типа данных1
Dim cell as Range
Dim AppendText as String
AppendText = "text"
Set cell = Range("A1")
If TypeName(cell.Value2) <> "String" Then
cell.Value2 = cell.Value2 & AppendText
Else
cell.Characters(Len(cell.Value2) + 1).Insert AppendText
End If
После того, как это запустится, ячейки, которые были числовыми, теперь будут строками, а могу имеют отдельные сформированные символы.
Примечания:
Вы можете предварить свой вызов
Range("A1").Value = "'" & Range("A1").Value
, предполагая, что форматирование еще не применено к отдельным цифрам.