2015-08-16 56 views
1

我看過但未找到解決方案,我嘗試的任務。我是VBA新手,所以學習曲線非常陡峭。這是我想要做的:根據用戶標準選擇顯示的行

在Excel 2010/2013中,我有一個工作表,其中固定內容在前9行,從​​第10行開始,在B列中有連續日期的數據行。我需要用戶能夠評估工作表中所有日期的某個子集內的數據。

例如:用戶在單元格K1中輸入值「06/15/15」,在單元格N1中輸入「06/19/15」。第10行至第20行各包含一條記錄,列B是每條記錄的日期字段。在這個例子中,單元格B10包含日期06/12/15到單元格B20,其中包含日期爲06/22/15。我需要查看代碼來查看單元格K1和N1的內容,將它們解釋爲日期範圍的邊界,並僅顯示行值爲10或更大並且在該定義範圍內的數據行,隱藏所有其他,使標題行1到9可見。只有大於9的行,日期介於用戶選擇的標準之間(包括用戶選擇的標準)應該是可見的。

+0

如果您發佈了編寫此代碼的嘗試,那麼我們可以幫助解決您可能遇到的任何問題。 SO不是代碼請求服務。 –

+0

@iturner - 我明白你在說什麼,但我的努力沒有產生任何有用的東西,我在他們不工作時刪除了它們。我想我太新了。 –

回答

0

嘗試這樣:

dim iRow as integer 
dim iColumn as integer 

iRow = 10  'Row 10 
iColumn = 2 'Column B 

do until activesheet.cells(iRow, iColumn).value = "" 
    if datediff("d", activesheet.range("K1").value, _ 
     activesheet.cells(iRow, iColumn).value) => -10 AND _ 
     datediff("d", activesheet.range("N1").value, _ 
     activesheet.cells(iRow, iColumn).value) =< 10 then _ 
     activesheet.rows(iRow).entirerow.hidden = true 
    iRow = iRow + 1 
loop 

如果您需要查看多列,可以在裏面與iColumn = iColumn + 1添加此循環的一個額外的環難道這就是你要找的人?