2017-06-14 258 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