Ячейки форматирования Excel - PullRequest
       19

Ячейки форматирования Excel

1 голос
/ 03 февраля 2010

У меня есть лист с датой и дополнительным пробелом в конце. И я хочу удалить их, чтобы я мог отформатировать их как дату и отсортировать лист Excel. Я использовал макросы, доступные онлайн, например:

Sub TrimColumnA()
  Dim rng As Range
  On Error Resume Next ''#if entire column is blank, exit sub
  Set rng = Intersect(Range("B1").EntireColumn, ActiveSheet.UsedRange)
  rng.Value = Evaluate("IF(ROW(" & rng.Address & "),IF(" & rng.Address & _
  "<>"""",TRIM(" & rng.Address & "),""""))")
End Sub

Я также пробовал другие макросы, они работают и удаляют пробелы, но мне нужно дважды щелкнуть в каждой ячейке, а затем они форматируют в дату. Как я могу избежать нажатия и непосредственно удалить пробел и отформатировать их в дату.

Версия - Excel 2007

Ответы [ 4 ]

1 голос
/ 03 февраля 2010

Не думаю, что тебя волнует, если клетка пуста. Возможно из соображений скорости, но только если вы используете TRS80

Sub MakeDates()

    Dim rCell As Range

    For Each rCell In Intersect(ActiveSheet.Columns(2), ActiveSheet.UsedRange).Cells
        If Not rCell.HasFormula Then
            rCell.Value = Trim(rCell.Value)
        End If
    Next rCell

End Sub

Это пропустит любые формулы, но в противном случае просто обрезает то, что уже находится в диапазоне.

0 голосов
/ 10 февраля 2010

Я использовал следующий код и изменил его, и он работает для моего сценария. Спасибо всем за ваши ответы и время

Sub RemoveTrailing()
'Code removes leading and trailing spaces (both ASCII 32 and 160) from a selected range of cells 
Dim cel As Range, rg As Range 
Application.ScreenUpdating = False 
Set rg = Intersect(Selection, ActiveSheet.UsedRange) For Each cel In rg
    If Not IsError(cel) Then
        If cel <> "" Then cel.Value = Trim(Application.Substitute(cel.Value, Chr(160), " "))
    End If
Next cel
Application.ScreenUpdating = True
End Sub
0 голосов
/ 04 февраля 2010

Может быть, я неправильно понимаю, но вы не можете просто выбрать столбец, нажать CTRL-H и заменить пробел ничем?

0 голосов
/ 03 февраля 2010

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

Sub Double_Click_Cells()
Dim iOS As Integer

  Application.Calculation = xlCalculationManual
  iOS = 0
  While Not IsEmpty(ActiveCell.Offset(iOS))
    ActiveCell.Offset(iOS).Formula = ActiveCell.Offset(iOS).Formula
    iOS = iOS + 1
  Wend
  Application.Calculation = xlCalculationAutomatic

End Sub

Это то, что тебе нужно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...