VBA公式错误

当试图运行下面的代码时,我得到错误应用程序或对象定义的错误。 任何人都可以检测到错误? 当我输出公式作为一个string,一切似乎很好。 当我尝试在公式中使用它时,它不起作用。 我一直在看它几个小时,并尝试了我可以想出的任何东西。

列中的内容createdColumn:Wed,26 Nov 2014 10:28:13 +0100

Dim createdColumn, updatedColumn, resolvedColumn As Integer createdColumn = GetColumnValueByName("created") updatedColumn = GetColumnValueByName("updated") resolvedColumn = GetColumnValueByName("resolved") Sheets("Current Data").Select ActiveSheet.Columns(createdColumn).Select Selection.Offset(0, 1).Select Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove ActiveSheet.Cells(2, createdColumn + 1).Select ActiveCell.FormulaR1C1 = _ "=LEFT(RIGHT(R[0]C[-1],LEN(R[0]C[-1])-5), LEN(R[2]C[-1])-5-6)" Dim dateArr As Variant Dim tmp As String tmp = Chr(34) & "1" & Chr(34) dateArr = Split(ActiveSheet.Cells(2, createdColumn + 1).Value, " ") ActiveSheet.Cells(2, createdColumn + 2).Select ActiveCell.FormulaR1C1 = _ "=DATE(" & dateArr(0) & ";MONTH(DATEVALUE(" &_ dateArr(1) & "&" & tmp & "));" & dateArr(2) & ") + " & dateArr(3) 

提前致谢!

这是我使用Split时发现的语法:

 Dim dateArr() As String dateArr() = Split(blah) 

那么如果你需要将string转换为date,你可能需要使用cdate(dateArr(#))

如果你想要重新格式化date,那么有一个相当简单的方法。 你可以使用这样的东西,这样可以避免你需要做Split:

 ActiveCell.FormulaR1C1 = Format(ActiveSheet.Cells(2, createdColumn + 1).value, "d/m/yyyy hh:mm:ss") 

或者为了更正你正在尝试的语法,你可以使用这个:

 ActiveCell.FormulaR1C1 = dateArr(0) & "/" & Month(DateValue("01 " & dateArr(1) & " 2014")) & "/" & dateArr(2) & " " & dateArr(3)