返回列表 上一主題 發帖

[發問] 如何選擇篩選後下一列的可見儲存格(已解答SendKeys "{DOWN}")

[發問] 如何選擇篩選後下一列的可見儲存格(已解答SendKeys "{DOWN}")

本帖最後由 av8d 於 2011-8-30 11:35 編輯

A    B    C
21
33
45


每當篩選
列數都是不固定的,如上。

當我設定選擇B1
Range("B1").Select

然後向下一格,會跳到第2列,但是我的需求是跳到21列
Range("B" & ActiveCell.Row + 1).Select

我只知道選取可見儲存格
Selection.SpecialCells(xlCellTypeVisible).Select

選取下一列可見儲存格該怎麼做呢?

回復 1# av8d
  1. Sub Ex()  '依序在選定 21,33,45等列
  2.     With Selection.SpecialCells(xlCellTypeVisible)
  3.             .Cells(1).Select
  4.             .Areas(2).Cells(1).Select
  5.             .Areas(3).Cells(1).Select
  6.     End With
  7. End Sub
複製代碼

TOP

本帖最後由 av8d 於 2011-8-29 16:34 編輯

回復 2# GBKEE


    謝謝版大~請問如果表2去設定表1~方法也是一樣嗎?

因為這行                  .Areas(2).Cells(1).Select

它會出現"應用程式或物件定義上的錯誤"
----------------------------------------------------------------
如果所選到的列=1001的時候做是這樣寫嗎?
If ActiveCell.Row = 1001 Then
'做
End If

TOP

回復 3# av8d
2樓的程式只是依照有3列   來寫的
請問如果表2去設定表1~方法也是一樣嗎?  你要附上範例說明需求

TOP

回復 4# GBKEE


    恩 是的 我明白  我先自行除錯看看好了 謝謝!!

TOP

SendKeys "{DOWN}"
篩選過的範圍用這個指令很方便

TOP

回復 6# oobird


    大大您好~請問使用方法是?

我把他加入按鈕測試~可是沒有任何效果!

TOP

本帖最後由 av8d 於 2011-8-31 09:32 編輯

oobird 大大 我查詢了一下您的方法~解開了!
也非常感謝GBKEE 大大的回覆以及提供的答案~依然可行!

TOP

本帖最後由 vuptp6 於 2019-7-7 16:35 編輯

借版詢問

我獨立寫一個巨集

sub aaa()
SendKeys "{DOWN 10}"
end sub

是有辦法正確執行
可是用呼叫或著寫入其他巨集裡就不正確了

例如A
Sub bbb()

For i = 1 To 10
MsgBox ActiveCell.Value
aaa
Next

End Sub

例如B
Sub bbb()

For i = 1 To 10
MsgBox ActiveCell.Value
SendKeys "{DOWN }"
Next

End Sub

為甚麼會這樣搞不懂


補充:可是這樣又可以
Sub 選擇可視區域()

For i = Range("A1048576").End(xlUp).Row - 1700 To 1 Step -1
    If Range("A" & i - 1) <> Range("A" & i) Then
        Range("A" & i).Select
        SendKeys "{DOWN}"
        ...
        ...
        ...
        Exit For
    End If
Next

End Sub

TOP

已經解決了
我在SendKeys "{DOWN}"後加True就可以了
SendKeys "{DOWN}", True

TOP

        靜思自在 : 改變自己是自救,影響別人是救人。
返回列表 上一主題