2017-06-14 328 views
1

我正在使用WorksheetFunction.CountIfs根据特定条件计算Sheet2上的记录。Excel VBA countifs工作表函数

我正在使用的代码是:

Dim wksdata As Worksheet 
Dim xyz as String 
Dim Time as String 

Set wksdata = Sheets("Data") 
Time = Date + TimeValue("08:00:00") 'Set Time value as todays date 8am 
Worksheets("Calculations").Range("I15").Value = Time 'set calculations worksheet cell I15 as the time value 

Worksheets("Data)").Range("U:U").NumberFormat = "dd/mm/yyyy hh:mm:ss" 'converts time column to time format 


xyz = WorksheetFunction.CountIfs(wksdata.Range("I:I"), "xyz", wksdata.Range("K:K"), "C", wksdata.Range("U:U"), "<" & Worksheets("Calculations").Range("I15").Value) 

如果我改变了,直接在工作表中(不VBA),那么它的工作原理与同样的逻辑工作。

任何人都可以指出,为什么它不是在VBA中工作,并建议如何解决它?

感谢

回答

0

尝试使用不同的变量设定的日期和时间。 “时间”是建立在VBA和将返回当前时间等范围(“I15”)值将被设置为当前时间,而不是08:00的要求

Dim wksdata As Worksheet 
Dim xyz as String 
Dim startTime as String 

Set wksdata = Sheets("Data") 
startTime = Date + TimeValue("08:00:00") 'Set Time value as todays date 8am 
Worksheets("Calculations").Range("I15").Value = startTime 'set calculations 
worksheet cell I15 as the time value 

Worksheets("Data)").Range("U:U").NumberFormat = "dd/mm/yyyy hh:mm:ss" 
'converts time column to time format 


xyz = WorksheetFunction.CountIfs(wksdata.Range("I:I"), "xyz", 
wksdata.Range("K:K"), "C", wksdata.Range("U:U"), "<" & 
Worksheets("Calculations").Range("I15").Value) 
+0

这是完全正常的使用时间' '作为变量名称,它是'VBA'库的成员,而不是保留关键字。 – CallumDA