Board logo

標題: [發問] 類似Ctrl+F的功能 [打印本頁]

作者: xgirlxs    時間: 2016-12-12 11:23     標題: 類似Ctrl+F的功能

如下圖,請問高手們能在VBA寫一個語法是
在B2輸入欲搜尋的名稱,按下搜尋後,即跑到D或E欄對應的欄位內
就像Ctrl+f的模糊搜尋功能
[attach]26074[/attach]
作者: cw3076    時間: 2016-12-14 21:47

Worksheets("Sheet1").[D:E].Find([A2]).Activate
作者: xgirlxs    時間: 2016-12-19 10:53

超棒的,感謝CW3076
作者: michael101772    時間: 2017-2-16 09:51

CW3076大大,
發現如果要尋找的欄位是屬於合併儲存格的話,就會一直出現"沒有設定物件變數或With區塊變數"的訊息,該如何解決這個問題?
作者: cw3076    時間: 2017-2-16 21:21

你好 michael101772,
如要讓錯誤不要出現可以在上方加入
On Error Resume Next
意思指表示當一個執行階段錯誤產生時,程式控制立刻到發生錯誤陳述式接下去的陳述式,而繼續執行下去。
作者: michael101772    時間: 2017-2-16 22:38

感謝cw3076大大的回覆,我知道如何讓程式繼續執行下去。
我自己後來也發現若你要找的值是一個合併儲存格時,搜尋的範圍就要擴大,
例如儲存格的欄位從C~F時,程式就要改寫成:
Worksheets("Sheet1").[C:F].Find([A2]).Activate
不然就會跳出我之前提到的訊息。
作者: jsc0518    時間: 2017-2-17 20:28

回復 6# michael101772


  請問一下,我依照語法,但仍無像Ctrl+F一樣,可以到找到的欄位上,是否哪裡有誤?

[attach]26650[/attach]
作者: michael101772    時間: 2017-2-17 23:18

因為你找A2,A2是空的,所以儲存格就移到空格了。
改成這樣就行了
Worksheets("工作表1").[D].Find([A1]).Activate
作者: jsc0518    時間: 2017-2-18 17:40

回復 8# michael101772

您好,再請教一下,若我在A1 輸入 CCC
有辦法像 Ctrl +F 一樣嗎
當我按下第一次時,它會到D4
當我按下第二次時,它會到D7

[attach]26678[/attach]
作者: michael101772    時間: 2017-2-18 20:48

抱歉,這個目前我就無法辦到了。
再麻煩版上的高手了。
作者: cw3076    時間: 2017-2-18 23:50

Hello jsc0518 你好,
如果在執行搜尋前讓當前位置的儲存格先下移一格再搜尋以避開停留的問題是否可以解決

ActiveCell.Offset(1, 0).Activate
作者: jsc0518    時間: 2017-2-19 08:25

回復 12# cw3076

感謝您的回復

語法有加上去,仍無法移至第2個CCC,語法是不是我有誤解

Sub Search()

ActiveCell.Offset(1, 0).Activate

Worksheets("工作表1").[D:D].Find([A1]).Activate

End Sub




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