台灣最大程式設計社群網站
線上人數
1528
 
會員總數:246738
討論主題:190152
歡迎您免費加入會員
討論區列表 >> Java Script/ Node.js >> FindCell, 如何在Excel 找到指定字串?
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
FindCell, 如何在Excel 找到指定字串?
價值 : 30 QP  點閱數:1814 回應數:9
樓主

Marco
門外漢
0 6
110 5
發送站內信

請教各位,我想寫成用當條碼機讀取到條碼時,能在Excel內找到指定字串並且開啟這個字串的連結.

IF RIGHT(vdata, 4) = "1234" Then '當條碼從右邊算來四碼是1234
Set objExcel = CreateObject("Excel.Application")objExcel.visible = true
Set objWorkbook = objExcel.Workbooks.Open ("http://www.yahoo.com.tw/Marco_share/ABC.xlsx")
'(到以上為止,當讀取到1234的條碼都可以開啟ABC.xlsx)
objWorkbook.Sheets(1).Activate() '(不確定這段是否是多餘的)
FindCell = (vdata) '(找不到ABC.xlsx裡面的1234)
objWorkbook.ActiveSheet.Range("A1").Hyperlinks(1).Follow '(這段是有個好心人建議我這樣寫,但我始終不明白)
End if




搜尋相關Tags的文章: [ Findcell ] , [ Excel ] , [ VBScript ] ,
本篇文章發表於2015-02-16 08:57
1樓
最有價值解答

香帥
檢舉此回應
請參考
http://www.blueshop.com.tw/board/show.asp?subcde=BRD20131226151819IWW&fumcde=BRD20131226151819IWW
我ㄧ樓的解答
objWorkbook.Sheets(1).Activate() '(不確定這段是否是多餘的)最好指定名稱Sheets("工作表名稱"),不要亂猜
本篇文章回覆於2015-02-16 13:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

Marco
檢舉此回應
香帥,

謝謝,我已看完建議我去參考的連結,但小弟我資質魯鈍,仍然不明白意思。我現在可以做到讀到我要的條碼就開啟我指定的檔案,但是不會搜尋與開啟連結
能否幫我簡化搜尋與開啟連結的寫法呢? 非常感謝。

我不是要用SheetA & SheetB的A項去比。若有相同就顯示位置(這個似乎用vlook可以達到)。

本篇文章回覆於2015-02-16 14:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

香帥
檢舉此回應
請至我server下載
http://ap.a168a.com/test/basfindlink.zip
執行findLInk()巨集,就會找到匹配1234字串並開啟連結,參考其程式碼去修改為符合您的。
本篇文章回覆於2015-02-17 00:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

Marco
檢舉此回應
香帥,

不好意思,我要把下列你寫的B語法想辦法加入到A語法內,但是我光是加入Dim i As long & Dim w As Worksheet 這兩個就會出現錯誤訊息。
我先敘述我想的流程,您參考看看是否可行,我目前卡在找尋字串以及開啟連結,我有把這段"If w.Cells(i, 2).Value = "1234" Then
w.Cells(2, 3).Hyperlinks(1).Follow" 加入到語法內,但是因為dim i As long & Dim w As Worksheet 錯誤所以無法使用。
您能幫我用A語法再給我ㄧ些提示嗎? 感謝。


流程:
1. 當條碼機讀取到條碼1234 '(PASS)
2. 開啟ABC.xlsx '(PASS)
3. 在Sheet1 找尋字串1234 '(FAIL)
4. 開啟1234的超連結 '(FAIL)



'-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
IF RIGHT(vdata, 4) = "1234" Then
Set objExcel = CreateObject("Excel.Application")
objExcel.visible = true
Set objWorkbook = objExcel.Workbooks.Open ("http://www.yahoo.com.tw/Marco_share/ABC.xlsx")
objWorkbook.Sheets(1).Activate()
FindCell = (1234) '我是想找1234但是沒功能

'-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

'-BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
Sub findLInk()
Dim i As Long
Dim w As Worksheet
Set w = Sheets("工作表1")
For i = 1 To w.Range("A65536").End(xlUp).Row
If w.Cells(i, 2).Value = "1234" Then
w.Cells(2, 3).Hyperlinks(1).Follow
Exit For
End If
Next i
End Sub

'-BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
本篇文章回覆於2015-02-17 10:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

香帥
檢舉此回應
w.Cells(2, 3).Hyperlinks(1).Follow
請更正為
w.Cells(i, 3).Hyperlinks(1).Follow
If w.Cells(i, 2).Value = "1234" Then
會打開google
"1234" 可改為 "5678"
會打開yahoo
以此類推
以下為工作表1的資料
b 5678 http://yahoo.com.tw
a 1234 http://www.google.com
a 5757 http://ap.a168a.com
本篇文章回覆於2015-02-17 10:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

香帥
檢舉此回應
4. 開啟1234的超連結 '(FAIL)
您要先確定您的超連結網址放在哪裡呢?
以我的例子是放在C欄位因此是CELLS(i,3)

本篇文章回覆於2015-02-17 10:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

Marco
檢舉此回應
香帥,

我大概知道你要我做什麼,但是我沒有這個Excel file的權限,所以我換個問題。
請問在Excel file內的Sheet1內搜尋1234的語法是什麼?
搜尋到1234,開啟這個超連結的語法是什麼?

謝謝。

本篇文章回覆於2015-02-17 10:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

香帥
檢舉此回應
開啟這個超連結的語法是什麼?
以下就是
w.Cells(i, 3).Hyperlinks(1).Follow
另外一種要控制資料
請參考
http://forum.twbts.com/viewthread.php?tid=6453
四樓的解答
該url可由原有存放位置去存取打開
至於搜尋如一樓的find,或5樓迴圈自己判斷
本篇文章回覆於2015-02-17 11:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

Marco
檢舉此回應
香帥,

謝謝,但我還是搞不定,我等年後再來想辦法,感謝你。
本篇文章回覆於2015-02-17 12:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.