Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 试图得到两个日期,上个月24日和本月23日_Vba_Excel_Date - Fatal编程技术网

Vba 试图得到两个日期,上个月24日和本月23日

Vba 试图得到两个日期,上个月24日和本月23日,vba,excel,date,Vba,Excel,Date,我尝试将两个日期作为变量,以便在每个月(不同时段)运行的SQL查询中交换它们。我正在尝试以“yyyy-mm-dd”格式获取上个月的24日,并以“yyy-mm-dd”格式获取本月的23日(当程序运行时)。我有这段代码,但它给了我“错误数量的参数”作为错误,我不明白为什么 Option Explicit Sub mDateSet() Dim fromDateFinal As String Dim toDate As String Dim toDateFinal As String Dim fromD

我尝试将两个日期作为变量,以便在每个月(不同时段)运行的SQL查询中交换它们。我正在尝试以
“yyyy-mm-dd”
格式获取上个月的24日,并以
“yyy-mm-dd”
格式获取本月的23日(当程序运行时)。我有这段代码,但它给了我“错误数量的参数”作为错误,我不明白为什么

Option Explicit
Sub mDateSet()
Dim fromDateFinal As String
Dim toDate As String
Dim toDateFinal As String
Dim fromDate: fromDate = Format(DateAdd("M", -1, Now), "yyyy-mmmm")
'Format gives 'wrong number of arguments or invalid property assignment error'

'trying to define two dates: the 24th of last month until the 23rd of this month)

    '24th of last month
    fromDateFinal = fromDate & "24"

            Debug.Print fromDateFinal

    '23th of this month
    toDate = Format(Date, "yyyy-mm")
    toDateFinal = toDate & "23"

            Debug.Print toDateFinal

End Sub

以下是一些来自已操纵日期和格式掩码的字符串日期

fromDateFinal = format(date-day(date), "yyyy-mm-24")  '2018-02-24
toDateFinal = format(date, "yyyy-mm-23")              '2018-03-23

以下是一些来自已操纵日期和格式掩码的字符串日期

fromDateFinal = format(date-day(date), "yyyy-mm-24")  '2018-02-24
toDateFinal = format(date, "yyyy-mm-23")              '2018-03-23
如果
格式(DateAdd(“M”,现在是-1),“yyyy mmmm”)
产生错误(
参数数量错误或无效属性分配错误
),并选择
格式
,则在
中定义了另一个函数
格式
,该函数的参数较少或较多

尝试
VBA.Strings.Format(DateAdd(“M”,现在是-1),“yyyy-mmmm”)

Strings.Format
是所需的
Format
函数的完全限定名

如果确实选择了
DateAdd
,则可能与此相同。这里的完全限定名是
VBA.DateTime.DateAdd

如果
格式(DateAdd(“M”),现在是-1,“yyyy mmmm”)
产生错误(
参数数量错误或无效属性分配错误
),并且选择
格式
,然后在
中定义了另一个函数
Format
,该函数具有更少或更多的参数

尝试
VBA.Strings.Format(DateAdd(“M”,现在是-1),“yyyy-mmmm”)

Strings.Format
是所需的
Format
函数的完全限定名


如果确实选择了
DateAdd
,则可能与此相同。这里的完全限定名是
VBA.DateTime.DateAdd

如果我运行这段代码,它将打印
2018-Februar24
2018-0323
。因此,您应该添加2个破折号,以获得良好的日期格式,但它在这里运行时没有任何错误。不能复制它。你确定问题中的代码正是你尝试过的代码吗?问题是@Axel Richter说
格式
是在项目中定义的,这就是我出错的原因。否则代码会(有点)起作用,这就是为什么我不明白为什么它会给我一个错误。如果我运行那段代码,它会打印
2018-Februar24
2018-0323
。因此,您应该添加2个破折号,以获得良好的日期格式,但它在这里运行时没有任何错误。不能复制它。你确定问题中的代码正是你尝试过的代码吗?问题是@Axel Richter说
格式
是在项目中定义的,这就是我出错的原因。否则代码会(有点)功能性的,这就是为什么我不明白为什么它会给我一个错误。谢谢,这一个似乎比我的代码简单得多。我们在另一个模块中定义了格式,所以把事情搞混了。谢谢,这一个似乎比我的代码简单得多。我们在另一个模块中定义了格式,所以把事情搞混了。谢谢,问题正是你所说的。多人在同一个宏上工作,该宏控制SQL查询,我想我从来没有想到定义格式是个问题。@Rhyfelwr:如果是我,我会解雇在
中将
格式定义为
函数
名称的人。至少当着他的面尖叫;-)@AxelRichter那正是你想静静地站起来,走出门一整天的时刻,因为你想杀死任何进入你房间的人。斗争是真实的谢谢,问题正是你说的。多人在同一个宏上工作,该宏控制SQL查询,我想我从来没有想到定义格式是个问题。@Rhyfelwr:如果是我,我会解雇在
中将
格式定义为
函数
名称的人。至少当着他的面尖叫;-)@阿克塞尔里希特:这正是你想静静地站起来,走出家门度过余下的一天的时刻之一,因为你想杀死任何进入你房间的人。斗争是真实的