2016-02-03 2 views
-1

У меня есть один столбец на моем листе, который имеет диапазоны года в каждой ячейке. (в 1995-2005 гг.) Я хорошо знаю формулы, но я не знаю VBA. Может ли кто-нибудь сказать мне сценарии, которые я могу использовать, чтобы изменить этот диапазон на диапазон, разделенный запятой, в одной ячейке. (Т.е. 1995,1995,1997 и т.д.)Мне нужно преобразовать диапазон разрыва в диапазон, разделенный запятой

+0

У вас есть пример того, как выглядят ваши данные? И как вы хотите, чтобы это выглядело? – Wouter

ответ

1

Ниже код преобразует как значение ячейки, как '1995-2000' до «1995,1996,1997,1998,1999, 2000' . Это будет продолжаться для всех ячеек, указанных в диапазоне

Sub commaYear() 
Dim rng As Range 
Dim ws As Worksheet 
Dim cellValue As Range 
Dim strtYear As Integer 
Dim endYear As Integer 
Dim tempCelValue As String 
Set rng = Range("A1:A10") 'Specify your Coloumn range 

For Each cellValue In rng.Cells 
    If (cellValue.Value <> "") Then 
     strtYear = CInt(Trim(Split(cellValue.Value, "-")(0))) 
     endYear = CInt(Trim(Split(cellValue.Value, "-")(1))) 
     'tempCelValue = "'" 
     While (strtYear <= endYear) 
      If (strtYear = endYear) Then 
       tempCelValue = tempCelValue & strtYear 
       strtYear = strtYear + 1 
      Else 
       tempCelValue = tempCelValue & strtYear & "," 
       strtYear = strtYear + 1 
      End If 
     Wend 
     cellValue.Value = tempCelValue 
    End If 
Next 
End Sub 
+0

Это работает, чтобы создать диапазон, но половина цифр, он изменяет «,» и делает огромное количество. Как вы это предотвращаете? – Tommy

+0

Я понял. Должен раскомментировать tempCelValue – Tommy

Смежные вопросы