Board logo

標題: 篩選一問 [打印本頁]

作者: agwhk    時間: 2011-7-29 10:38     標題: 篩選一問

請問經篩選出來的資料,如何得知每一列的存格位置及如何移動游標到指定的某一列? 謝謝
作者: kimbal    時間: 2011-7-29 13:42

假設表在 A1:C6
篩選後, 運以下的,會把行數一行一行讀出來. 留意下面只選一個欄.
    For Each area In Range("A1:A6").SpecialCells(xlCellTypeVisible).Areas
        For Each cell In area
            MSGBOX(cell.Row)
        Next
    Next
作者: like_azure    時間: 2011-7-29 16:56

版大您好,小弟也對自動篩選有很多疑惑,要請教各位大大:
1.請問下面那個For Each cell In area
                              "Cell" -->是保留字,還是自定的變數呢?
2.如果我已經寫一段程式(如下)是一列列讀取的時候,要怎麼判斷選取到的那一列,是不是有資料呢(我有用過Is Nothing,但是沒有作用)?
3.要怎麼讀取每一列裡面的特定欄位呢?


Dim rng As Range        '自動篩選結果範圍
Dim theRow As Range     '各區域的資料列
Dim theArea As Range        '各區域範圍

For Each theArea In rng.Areas
        '遍歷各AREA的各列
        For Each theRow In theArea.Rows
            theRow.Select       '選定此列
            'MsgBox theRow.Address       '顯示此列的位址
        Next
    Next
作者: GBKEE    時間: 2011-7-29 20:41

回復 3# like_azure
  1. For Each theArea In rng.Areas
  2.         '遍歷各AREA的各列
  3.         For Each theRow In theArea.Rows
  4.             theRow.Select       '選定此列
  5.             MsgBox theRow.Cells(1).Address                  '顯示此列第1欄的位址
  6.             MsgBox theRow.Cells(theRow.Count).Address       '顯示此列最後1欄的位址
  7.         Next
  8.     Next
複製代碼

作者: like_azure    時間: 2011-8-4 15:32

感謝GBKEE版大的回覆
小弟測試之後發現
顯示該列最後一行的地方需要修改一個小地方才能成功
MsgBox theRow.Cells(theRow.Cells.Count).Address




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)