匿名使用者
匿名使用者 發問時間: 電腦與網際網路程式設計 · 8 年前

取得儲存格〔右方〕第一個〔非隱藏〕儲存格的位址

1.此為原准大解答,實際執行有疑問,故再提問

2.B,D欄隱藏,現有儲存格A1

Sub T20130131_2()

MsgBox ActiveCell.Address '$A$1

SendKeys "{RIGHT}"

DoEvents

MsgBox ActiveCell.Address '$A$1

End Sub

3.實際執行SendKeys "{RIGHT}"未有右移作用,現有儲存格依舊為A1,

不是應為$C$1嗎 ??????

已更新項目:

1.http://www.funp.net/847717 經執行ok.

2.請下載 http://www.funp.net/739990

為何 執行方式不同 以 命令鍵 or 點擊 執行SUB ,結果不同.

-----請准大幫忙解答

2 個已更新項目:

點擊 執行SUB --- 為 鼠標於sub 程式段內,再點擊vbe 的三角形▲執行SUB 鍵

3 個已更新項目:

不明白〔當前工作表〕請准大說明????????

2 個解答

評分
  • 阿戊
    Lv 7
    8 年前
    最佳解答

    用sendkeys會有駐點的潛在問題...

    試試這樣吧...

    Sub test()

    Do While ActiveCell.Column < 256

    Cells(ActiveCell.Row, ActiveCell.Column + 1).Select

    If ActiveCell.EntireColumn.Hidden = False Then Exit Do

    Loop

    End Sub

  • 8 年前

    <測試檔>:

    http://www.funp.net/847717

    測試是沒問題的!

    2013-02-20 16:43:17 補充:

    〔點擊〕指的是:

    1.選取單格?SelectionChange

    2.以右鍵點擊單格?BeforeRightClick

    3.以雙按左鍵點擊單格?BeforeDoubleClick

    2013-02-20 18:07:47 補充:

    上次提醒過:SendKeys "{RIGHT}" 必須在〔當前工作表〕執行!

    若不想使用按鈕,應設定快速鍵執行!

    通用法:

    Sub T20130220_2()

    Dim xR As Range

    Set xR = ActiveCell

    Do

     Set xR = xR(1, 2)

     If xR.ColumnWidth > 0 Then xR.Select: Exit Do

    Loop

    End Sub

    2013-02-20 18:13:08 補充:

    或較簡單:

    Sub T20130220_3()

    Do

     ActiveCell(1, 2).Select

    Loop Until ActiveCell.ColumnWidth > 0

    End Sub

    2013-02-20 22:03:41 補充:

    〔當前工作表〕就是在視窗最前端的工作表,

    若在VBE編輯器執行 SendKeys "{RIGHT}" 這指令只在VBE頁面生效,

    無法在工作表發揮作用!

    依您的需求,使用SendKeys不太適用!

還有問題?馬上發問,尋求解答。