1

我有两列的值,例如:

5 - 11 octubre                             2011
5 - 11 octubre                             2011
5 - 11 octubre                             2011
12 - 18 diciembre                          2011
30 noviembre - 6 diciembre                 2012
30 noviembre - 6 diciembre                 2012
18 - 24 septiembre_2012                    2012
18 - 24 septiembre_2012                    2012
22 - 28 abril_2013                         2013
22 - 28 abril_2013                         2013

我想把最后一天放在一个列中,例如:

2011/10/11
2011/10/11
2011/10/11
2011/12/18
2011/12/06
2011/12/06
2012/09/24
2012/09/24
2013/04/28
2013/04/28

但我找不到这样做的方法。有人可以帮助我吗?

现在我有这个:(混乱的日期在 D 和年份在 I)

Sub Data()
With ActiveSheet
LASTROW = .Cells(.Rows.Count, "A").End(xlUp).Row
End With

   For b = LASTROW To 1 Step -1
        Cells(b, 4) = Application.Clean(Application.Trim(Cells(b, 4)))
    Next




For i = 1 To LASTROW

Valor = Right(Range("D2").Offset(i, 0).Value, 12)
 Numero = Right(Range("D2").Offset(i, 0).Value, 4)

If InStr(1, Valor, "enero") > 0 Then
Range("E2").Offset(i, 0).Value = "Enero"
End If

If InStr(1, Valor, "febrero") > 0 Then
Range("E2").Offset(i, 0).Value = "Febrero"
End If

If InStr(1, ActiveSheet.Range("D2").Offset(i, 0).Value, "marzo") > 0 Then
Range("E2").Offset(i, 0).Value = "Marzo"
End If

If InStr(1, ActiveSheet.Range("D2").Offset(i, 0).Value, "abril") > 0 Then
Range("E2").Offset(i, 0).Value = "Abril"
End If

If InStr(1, ActiveSheet.Range("D2").Offset(i, 0).Value, "mayo") > 0 Then
Range("E2").Offset(i, 0).Value = "Mayo"
End If


If InStr(1, ActiveSheet.Range("D2").Offset(i, 0).Value, "junio") > 0 Then
Range("E2").Offset(i, 0).Value = "Junio"
End If

If InStr(1, ActiveSheet.Range("D2").Offset(i, 0).Value, "julio") > 0 Then
Range("E2").Offset(i, 0).Value = "Julio"
End If

If InStr(1, ActiveSheet.Range("D2").Offset(i, 0).Value, "agosto") > 0 Then
Range("E2").Offset(i, 0).Value = "Agosto"
End If

If InStr(1, ActiveSheet.Range("D2").Offset(i, 0).Value, "septiembre") > 0 Then
Range("E2").Offset(i, 0).Value = "Septiembre"
End If

If InStr(1, ActiveSheet.Range("D2").Offset(i, 0).Value, "octubre") > 0 Then
Range("E2").Offset(i, 0).Value = "Octubre"
End If

If InStr(1, ActiveSheet.Range("D2").Offset(i, 0).Value, "noviembre") > 0 Then
Range("E2").Offset(i, 0).Value = "Noviembre"
End If

If InStr(1, ActiveSheet.Range("D2").Offset(i, 0).Value, "diciembre") > 0 Then
Range("E2").Offset(i, 0).Value = "Diciembre"
End If
Next i

End Sub

我正在考虑检查“Numero”是否是一个数字,如果是,我不知道如何从主字符串中删除它......如果你们能帮助我......

4

1 回答 1

2

如果您不介意使用 excel 公式,您可以使用它,假设日期范围在单元格 A1 中,年份在单元格 B1 中:

=(MID(A1,FIND("-",A1)+2,IFERROR(FIND("_",A1)-FIND("-",A1)-2,30))&" "&B1)*1

这基本上找到-并使用它来获取日期和月份,_如果找到一个就停止,并将其连接到年份。是将*1字符串转换为数字,您只需将具有公式的列格式化为yyyy/mm/dd.

于 2013-05-10T14:46:11.117 回答