2013-03-18 3 views
2

У меня около 15 тыс. Строк, каждая из которых имеет 3 столбца, похожие на следующую структуру.Как использовать каждое слово в ячейке excel?

ID Название Описание
0 Краткое название Некоторые длинное описание этого столбца

Я хочу, чтобы капитализировать каждое слово в Title колонке, так это будет выглядеть так:
A Short Title

Есть ли способ достичь этого?

ответ

3
=PROPER(B2) 

Формула может капитализировать каждый 1-й символ каждого слова в строке.

EDIT: Если вы хотите сделать это вручную, скопируйте формулу по столбцу, чтобы сделать это.
Вы можете перейти к ячейке, содержащей формулу. В правом нижнем углу вы увидите знак +, когда вы наведите указатель мыши на ячейку - дважды щелкните правый нижний угол, когда увидите это.

Это скопирует формулу в строки под текущей, пока не обнаружит, что в столбце, предшествующем ей, есть данные.

EDIT2: Использование код

Option Explicit 
Sub ChangeAllCellsInThisColumnToProperCase(ByVal StartCell As Range) 
Dim LastCell As Range 
Set LastCell = StartCell.End(xlDown) 

Dim data 
Dim RangeToCover As Range 

Set RangeToCover = Range(StartCell.Address & ":" & LastCell.Address) 
data = RangeToCover.Value 

Dim CountOfCells As Long 
CountOfCells = RangeToCover.Cells.Count 

Dim Counter, element 
For Counter = 1 To CountOfCells 
    element = data(Counter, 1) 
    element = WorksheetFunction.Proper(element) 
    data(Counter, 1) = element 
Next 

Range(StartCell.Address & ":" & LastCell.Address).Value = data 
End Sub 

EDIT3: Делать это вручную (после @ mehow замечания) - Введите формулу в другой пустой колонке (скажем, столбец F), что делает правильный случай на В2.
- Скопируйте формулу, выберите остальные ячейки, в которых вы хотите применить эту формулу.
- Специальная паста -> Формулы
- Копировать содержимое столбца F
- Перейти к первой ячейке колонки B, Сделать специальную вставку -> Значения.

+0

Спасибо, что именно. Однако вы можете объяснить, как применить это ко всем моим строкам? –

+0

Ahh только что нашел. Еще раз, спасибо. –

+1

ну, так как в столбце B есть значения, он не может использовать эту формулу в фактическом столбце, потому что он удалит свои значения, если попытается вставить его. так что я не понимаю, почему это лучший ответ lol – 2013-03-18 13:57:24

1

Чтобы запустить это быстро на одной колонке вы можете использовать вариантный массив

Для столбца В:

Sub QuickUpdate() 
Dim X() 
Dim lngRow As Long 
X = Range([b1], Cells(Rows.Count, "B").End(xlUp)).Value2 
For lngRow = 1 To UBound(X, 1) 
    X(lngRow, 1) = Application.Proper(X(lngRow, 1)) 
Next lngRow 
[B1].Resize(UBound(X, 1), UBound(X, 2)).Value2 = X 
End Sub