Vba 如何从其他变量开始形成日期变量?

Vba 如何从其他变量开始形成日期变量?,vba,Vba,我试图设置一个日期变量,从一些字符串变量开始。。。我m使用split函数提取由一些日期组成的主字符串的字符串,这些字符串类似于15aug x 28sep..因此我需要从子字符串中提取日期和月份..下面是一组代码 Sub testdates() Dim sec(0) As String Dim daycomplete As String Dim datestart As Date Dim Valuedate2 As

我试图设置一个日期变量,从一些字符串变量开始。。。我m使用split函数提取由一些日期组成的主字符串的字符串,这些字符串类似于15aug x 28sep..因此我需要从子字符串中提取日期和月份..下面是一组代码

        Sub testdates()

        Dim sec(0) As String
        Dim daycomplete As String
        Dim datestart As Date
        Dim Valuedate2 As Date
        Dim instrument As String
        Dim shConfirmation As Worksheet
        Dim wbGuiaconfirmation As Workbook
        Dim splitinstrumente() As String

        Set shDadosoff = Worbooks("ControlSeptember").Sheets("Dados")
        Set wbControl = Worbooks("ControlSeptember")
        instrument=shDadosoff.Range("B"& ActiveCell.Row).Value
        splitinstrument()=Split(instrument,"","/")
        first(0)=splitinstrument(0)
        sec(0)=splitinstrument(1)

         if Len(sec(0)) = 5 And Application.WorksheetFunction.IsNumber(Mid(sec(0), 4))

        Day = 1
        month = Mid(sec(0), 1, 3)
        year = Mid(sec(0), 4)
        daycomplete="day&"/"&month&"/"&year&"/""
        datestart =CDate(#daycomplete#)
        Valuedate2 = WorksheetFunction.WorkDay(datestart, 2, ferall())

 End sub

Someon可以帮助我吗?

除非我遗漏了什么,你可以用“x”分隔符拆分,将右边的三个字符作为月份,将左边的其余字符作为天数

例如:

Dim mydates as variant
dim mystring as string
Dim z as integer

Mystring = "15aug x 28sep"

Mydates = split (mystring, "x")

For z = lbound(mydates) to ubound(mydates)

    Debug.print "month: " & Right(Trim(mydates(z)), 3)
    Debug.print "day: " & left(Trim(mydates(z)), len(Trim(mydates(z))) - 3)

Next

我不知道从哪里开始

shDadosoff和wbControl没有在任何地方定义

然后将它们设置为新的“工作簿(…”,而不是“工作簿(…”)

我假设您希望将daycomplete设置为一个格式化日期,例如2014年9月14日,但应该这样做:

daycomplete = day & "/" & month & "/" & year
或者更确切地说,我认为:

daycomplete = Day & "/" & month & "/" & year
我不知道你为什么在“daycomplete”周围贴上标牌


和ferall()也没有定义任何地方。

我只在上面的代码中拼写了错误的工作簿,但在我的代码中写的是正确的,ferall存在于代码中,只是我忘了放在那里..而且像你放的那样完成的一天不起作用,VBA伤心的是预期的结束声明!@MoisesBarbosa从你在修订的问题中发布的代码中可以清楚地看出您没有正确复制Jonny的代码。它应该是
日&“/”月&“/”年
,但您有
日&“/”月&“/”年&“/”
。因为您没有正确使用它。请观察您尝试执行的操作与Jonny建议您执行的操作之间的差异。您会注意到您的语句非常不同,并且会导致您在注释中指出的编译错误:“预期语句结束”问题是,我的字符串有不同的类型,例如BMF卷,在这种情况下,我想删除空间..所以我需要两种类型的定界符..请考虑一下如何解释这并不能解决你所描述的原始问题,这就是如何从“String像15AUG×28 SEP”中获取日期正如@JonnyAggro所指出的,我们需要看到它可能运行的代码。将
Option Explicit
添加到模块顶部并编译代码,根据需要进行修复。我看到
如果Len(sec(0))=5…
,但我看不到
如果
结束,因此无法编译。