我需要将撕裂范围转换为逗号分隔范围

时间:2016-02-03 13:28:27

标签: excel vba excel-vba range

我的工作表中有一个列,每个单元格中都有年份范围。 (即1995-2005)我非常了解公式,但我不知道VBA。有人可以告诉我一个脚本我可以用来将这个范围改成单个单元格中逗号分隔的年份范围。 (即1995,1995,1997等)

2 个答案:

答案 0 :(得分:1)

以下代码转换为单元格值,如' 1995-2000'至' 1995,1996,1997,1998,1999,2000'对于Range

中指定的所有单元格,这将继续
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

答案 1 :(得分:0)

例如:http://prntscr.com/9yhns8

for key in sorted(mydict):
    print "%s: %s" % (key, mydict[key])