0 / 0 / 0 Регистрация: 28.07.2014 Сообщений: 3 |
|
1 |
|
Удаление символов в ячейке ексель28.07.2014, 02:57. Показов 20684. Ответов 4
Приветствую. 1. Замена комбинаций символов — в примере » » (двойной пробел) на » » (одиночный пробел) Обработка всего листа по всем столбцам с данными. Заранее благодарен.
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
28.07.2014, 02:57 |
4 |
ViterAlex 8927 / 4839 / 1885 Регистрация: 11.02.2013 Сообщений: 10,246 |
||||
28.07.2014, 04:56 |
2 |
|||
1 |
olegerius 0 / 0 / 0 Регистрация: 28.07.2014 Сообщений: 3 |
||||
28.07.2014, 05:11 [ТС] |
3 |
|||
Спасибо за ответ. Добавлено через 6 минут
0 |
8927 / 4839 / 1885 Регистрация: 11.02.2013 Сообщений: 10,246 |
|
28.07.2014, 06:32 |
4 |
Пробелы в начале и конце строки можно (и нужно) убирать функцией Trim
0 |
0 / 0 / 0 Регистрация: 28.07.2014 Сообщений: 3 |
|
28.07.2014, 11:18 [ТС] |
5 |
Прошу прощения за лохизм — пример нужен с условием.
0 |
I am trying to delete the first occurrence of «<» and «>» in a cell without losing formatting of the remainder of the cell’s contents.
I have looked in several places here, and other, to no avail.
This is what I am trying to do:
Say «A1» contains the text:
"This is <a> long string with several <occurrences> of a <special> character."
In any case, What I am trying to do is remove the «>», and in a perfect world the «<«, from the first word which contains them while maintaining the bold formatting as well as the «<» and «>» on the next word containing them.
This is ONLY other code executing prior to the code I am having issues with.
inTx = Range("A2").Value
outTx = Replace(inTx, "Init_Day", Range("A3").Value)
Range("A2").Value = outTx
Which replaces the <placeholder>
text with the actual text, a two digit number in this case.
Here is the code that is not working for me:
SearchString = Range("A2").Value
Char1 = "<"
Char2 = ">"
For i = 1 To Len(SearchString)
If Mid(SearchString, i, 1) = Char1 Then
startPos = i
Exit For
End If
Next i
For i = 1 To Len(SearchString)
If Mid(SearchString, i, 1) = Char2 Then
endPos = i
Exit For
End If
Next i
Range("A2").Characters(startPos, endPos - startPos).Font.Bold = True
Range("A2").Characters(startPos - 1, 1).Delete
All code works fine until I reach the last line:
Range("A2").Characters(startPos - 1, 1).Delete
then nothing happens.
I’ve even tried:
Range("A2").Characters(startPos - 1, 20).Delete
Still nothing…
I know this should be easy but I can’t seem to figure it out.
Thanks in advance.
Доброе время суток уважаемые форумчани!!
Хочу попросить помощи в решение следующей задачи.
В ячейке содержится текст где каждый символ имеет свои свойства (формат), в том числе и надстрочные символы.
Необходимо удалить надстрочные символы в тексте так, чтобы формат остальных символов остался неизменным.
Единственное что придумал, это:
1. Создание двумерного массива: Массив(параметры To колич. символов)
2. Перебор текста по одному символу и сохранение параметров каждого символа в массив (с помощью: ячейка.Characters(i, 1).Font)
3. Поиск надстрочных символов, их удаление, присвоение остальным символам соответствующий формат
Вроде все предельно ясно, но лист который я буду обрабатывать содержит тысячи ячеек и текст там далеко не в 3 символа.
Есть другой более простой способ решения этой задачи?
Пример текста и желаемого результата прикладываю.
Спасибо всем заранее!
in this example below I want to remove the «B» using VBA. Thus, I download these values which spam from B5:F50 and all in the end have «B». My question is twofold. A) Is there a way to delete the «B» using VBA and replace these values in the same cells? B) Or have to be in new cells?
77.65B 86.73B 92.97B 84.7B 89.4B
asked Aug 16, 2017 at 13:56
2
The code would be like this
Sub test()
Dim rngDB As Range, vDB
Dim s As String, i As Integer, j As Integer
Set rngDB = Range("b5:f50")
vDB = rngDB
r = UBound(vDB, 1)
c = UBound(vDB, 2)
For i = 1 To r
For j = 1 To c
s = vDB(i, j)
s = Left(s, Len(s) - 1)
vDB(i, j) = s
Next j
Next i
rngDB = vDB
End Sub
Or
Sub test2()
Dim rngDB As Range
Set rngDB = Range("b5:f50")
rngDB.Replace "B", "", lookat:=xlPart
End Sub
answered Aug 16, 2017 at 14:11
0
The easiest (shortest) way I can see to do this is with a Search/Replace, but this would be on the assumption that all cells end in B and a B doesn’t legitimately occur elsewhere in the cells.
Sheets("YourSheetNameHere").Range("B5:F50").Replace What:="B", Replacement:="", LookAt:=xlPart
Alternatively, you could loop through each cell and RIGHT
/LEN
etc. but why bother?
answered Aug 16, 2017 at 14:13
CLRCLR
10.7k1 gold badge10 silver badges26 bronze badges
0
Группа: Пользователи Ранг: Участник Сообщений: 73
Замечаний: |
[vba]
Код
Dim c as Range
Dim str as String
for each c in selection
str = c.value
If left(str,1) = 7 then
c.value = right(str, len(str)-1)
end if
next
[/vba]
Но если вы вместо цифры захотите убрать, допустим букву а, тогда надо написать = «a», т.е. взят ь в кавычки
Сообщение отредактировал TD_MElec — Пятница, 19.11.2021, 21:04