将变量传递给Left(string,VariableHere)不起作用

时间:2015-08-14 01:29:43

标签: excel vba excel-vba

我有一个数据导入文件,其上有日期而没有逗号(即January 1 2015)。 Excel不会将此识别为日期,我需要使用这些日期来查找其他日期(即日期+行程长度以查找行程的最后一天等)

我正在尝试使用VBA来完成此操作并将逻辑降低但我遇到了错误。

我占用了日期(January 1 2015)的长度,5个正确的字符(2015),整个长度的左边减去5个右边的字符(JANUARY 1) ,然后将这些变量与插入的逗号组合在一起:Left(value-5) & ", " & Right(value, 5)

我正在使用此代码:

    'correct date from JANUARY 1 2000 to JANUARY 1, 2000 so excel can recognize as date

    LengthTrpDpt = Len(wb1.Sheets("BL Import").Cells(ioi, TrpDepCol)) 'length of date
    LengthRightTrpDPt = Right(wb1.Sheets("BL Import").Cells(ioi, TrpDepCol), 5) 'finds right 5 of date " 2015"
    NewListedDate = Left(wb1.Sheets("BL Import").Cells(ioi, TrpDepCol), LengthTrpDpt - 5) & ", " & LengthRightTrpDPt

问题在于NewListedDate变量。我可以将部分LengthTrpDpt - 5更改为一个数字,它工作正常。出于某种原因,我不能在这里找到方程式。我尝试在单独保存的变量(LengthMath = LengthTrpDpt - 5)中执行等式,而使用LengthMath,但这也不起作用。

LengthTrpDpt工作正常,MsgBox是正确的数字。有任何想法吗?谢谢!

1 个答案:

答案 0 :(得分:3)

您应该Split()日期字符串来获取您的三个部分,然后将它们重新组合在一起,无论您喜欢:

Dim a
a = Split(wb1.Sheets("BL Import").Cells(ioi, TrpDepCol))
NewListedDate = a(0) & " " & a(1) & ", " & a(2)