我试图从Access中的另一个子调用一个子,并不断收到“编译器错误ByRef参数不匹配。我了解它说我传递的变量与被调用子中指定的变量不匹配。这是我的代码。我将变量firstDayOfStartMonth和firstDayOfEndMonth定义为日期,并将它们传递给第二个proc deleteCurrentData(startDate As Date,endDate As Date)。
任何帮助将不胜感激。
Sub loadDataFromExcel()
Dim monthName1, monthName2 As String
Dim startMonth, endMonth, curMonth As Integer
Dim thisMonday, rptStartDate, rptEndDate, firstDayOfStartMonth, firstDayOfEndMonth As Date
thisMonday = Date - Weekday(Date, vbMonday) + 1
rptStartDate = thisMonday - 14
rptEndDate = thisMonday - 10
firstDayOfStartMonth = DateSerial(Year(rptStartDate), Month(rptStartDate), 1)
firstDayOfEndMonth = DateSerial(Year(rptEndDate), Month(rptEndDate), 1)
Call deleteCurrentData(firstDayOfStartMonth, firstDayOfEndMonth)
End Sub
Private Sub deleteCurrentData(startDate As Date, endDate As Date)
我有变量
firstDayOfStartMonth
并firstDayOfEndMonth
定义为日期
实际上,这不是真的!
当您使用此声明时
Dim thisMonday, rptStartDate, rptEndDate, firstDayOfStartMonth, firstDayOfEndMonth As Date
仅为firstDayOfEndMonth
类型Date
,其他值为Variant
。尝试改用此声明
Dim thisMonday As Date, rptStartDate As Date, rptEndDate As Date, firstDayOfStartMonth As Date, firstDayOfEndMonth As Date
这将解决问题。
PS与同一件事
Dim monthName1, monthName2 As String
和
Dim startMonth, endMonth, curMonth As Integer
更改为
Dim monthName1 As String, monthName2 As String
和
Dim startMonth, endMonth As Integer, curMonth As Integer
相应地
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句