2012-09-26 24 views
1

我有一張表格,它向用戶檢索可用報表的列表。然後,用戶在他們希望生成的報告旁邊的特定列中輸入「X」。如何遍歷多行並調用vba,具體取決於標記哪一行

如何遍歷每個可用的行並計算出用戶是否輸入了'X'?

A   |   B   |  C   | D 
001  | REPORT A   |  fnReportA | X 
002  | REPORT B   |  fnReportB | <NULL> 
003  | REPORT C   |  fnReportC | <NULL> 

OR

我如何通過每一行遍歷時列表中檢索,並把一個按鈕鏈接到VBA來生成報告的每一行的結束?

+2

使用的每個單元的行號自動過濾器,然後循環通過可見範圍?嘗試錄製一個宏來查看代碼,然後修改它以適應您的需求:)如果您遇到問題,只需發佈​​您嘗試的代碼,然後我們就可以將它形成那裏... –

+0

無法將腳本附加到頁面本身在Developer選項卡中,所以它在後臺運行,等待有問題的單元格被使用? –

+2

而不是在每一行旁邊放一個按鈕,我會將這個報告列表顯示爲對話框/表單中的一個監聽對象。然後,他可以使用多選按鈕和一個按鈕來創建所有報告。另一種方式,通過遍歷列表,也可以通過遍歷列表的數組副本來解決,檢查列D並生成報告(如果找到X),或生成報告,將過濾列表的每行生成報告作爲Rout說過。 – Jook

回答

3

For Each會做搜索的類型,你正在尋找做

一個簡單的例子:

Option Explicit 

Sub testit() 
Dim c As Range 
For Each c In Range("D2:D10").Cells 
    If c.Value = "X" Then 
     Debug.Print c.Row 
    End If 
Next 
End Sub 

這將打印有一個X.