2017-03-21 28 views
0

希望我可以得到這方面的任何幫助..我已經試過計數滿足兩個日期標準的記錄(日期標準是動態的,所以會不斷變化,我已經把它放在數據的下一張這裏是我試圖運行的是這裏帶給我的空白結果代碼是我的代碼,我已經收集迄今使用的宏:從兩個日期標準計數記錄

Worksheets("Data").Select 
Range("A1").Select 
Range(Selection, Selection.End(xlToRight)).Select 
Selection.AutoFilter 
ActiveSheet.Range("$A$1:$BN$235").AutoFilter Field:=4, Criteria1:="=COUNTIFS(DOB," >= "&R[1]C,DOB,""<=""&R[1]C[1])" 

ActiveWindow.SmallScroll Down:=-9 
Range("A1").Select 
Range(Selection, Selection.End(xlDown)).Select 
Range(Selection, Selection.End(xlToRight)).Select 
Selection.Copy 
Set NewSheet = Sheets.Add(After:=Worksheets("error")) 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 
NewSheet.Name = "DOBrange" 
NewSheet.Range("A1").Select 
Application.CutCopyMode = False 

Worksheets("Data").Select 
Worksheets("Data").Range("A1").Select 
+0

當我做同樣的在excel中使用相同的標準和數據標識公式,我可以精確地計算符合這兩個標準日期的日期,同時運行VB代碼它會顯示爲空白結果 - 它必須使用其他標準作爲標準,因爲不會出現錯誤 – vj12

+0

日期標準爲在表名「錯誤」在a20&b20 – vj12

回答

2

你似乎是試圖通過兩個日期之間選擇值過濾行,但是你的標準是說你想要選擇等於某事的值(這似乎試圖說所有的值都等於兩個其他日期之間日期的值的計數 - 所以如果五個日期在該範圍內,則您試圖說過濾器以顯示所有值那是5)。

正確的方式來選擇兩個日期之間的值會說:

ActiveSheet.Range("$A$1:$BN$235").AutoFilter _ 
        Field:=4, _ 
        Criteria1:=">=" & Worksheets("Error").Range("A20").Value2, _ 
        Operator:=xlAnd, _ 
        Criteria2:="<=" & Worksheets("Error").Range("B20").Value2 

(假設這兩個日期都在細胞A20和工作表「錯誤」的B20)

+0

你有沒有測試過它?有時候''日期''有點棘手。我已經發現,通常你需要你用Cdbl(「Dates」)來使它正常工作。 –

+0

@ShaiRado - 沒有測試那個特定的代碼,但用'ActiveSheet.Range(「$ A $ 1:$ G $ 28」)測試過。AutoFilter Field:= 4,Criteria1:=「> =」&Cells(35, 10).Value2,Operator:= xlAnd,Criteria2:=「<=」&Cells(36,10).Value2'。我的專欄D的日期從今天開始並加1,我的J35和J36設置爲31/03/2017和2017年4月4日。 – YowE3K

+0

讓我們希望PO的單元格的日期格式與您的一樣:)我發現大多數問題都包含一些「瘋狂」的日期和數字格式,您將在這裏獲得** V **的汗水;) –

0

您在標準1陳述

Criteria1:="=COUNTIFS(DOB," >= "&R[1]C,DOB,""<=""&R[1]C[1])" 

你可以有問題看到> =的文字顏色是黑色,而其他的是棕色的,這意味着vba會比較「= C」 OUNTIFS(DOB,「和」& R [1] C,DOB,「」< =「」&R [1] C [1])「),那麼標準1將是真或假。這樣你就不會得到的結果通過您的病情有所不同

下面的代碼可以解決這個問題

Criteria1:="=COUNTIFS(DOB, "">=""" & R[1]C & ",DOB,""<=""" & R[1]C[1] & ")" 
+0

我試着運行這個代碼,但它的comi因爲syntx錯誤,在引用中有一個問題,因爲我可以看到標準不是指我想要的位置 – vj12

+0

您可以向我發送文件嗎? –

+0

Plz分享你的電子郵件 – vj12