iT邦幫忙

0

VBA輸入不同資料回傳結果

vba

各位大神好,小弟不才.想寫一個查詢資料用的VBA
以下是資料庫
https://ithelp.ithome.com.tw/upload/images/20210110/20122398GD3Mq6Hec7.png

以下是結果
https://ithelp.ithome.com.tw/upload/images/20210110/20122398iaq3rYrtNj.png
我希望在A欄中輸入資料回傳結果到B:D
如果是單的一資料小弟已經解決(就是說如果A欄都是同一類的如都是姓名),現時我想輸入不同的資料都能回傳出結果
小弟愚笨希望各位能指點一下.同時附上代碼教各位大神賜教.

Dim inputdatedate As String
Dim answer As Range

Worksheets(2).Range("A2").Activate

Do Until ActiveCell = ""
inputdate = Worksheets(2).Range(ActiveCell, ActiveCell).Value

Set answer = Worksheets(1).Range("A:A").Find(inputdate, MatchCase:=True, lookat:=xlWhole)


Worksheets(2).Range(ActiveCell, ActiveCell).Offset(0, 1) = answer.Offset(0, 0).Value  '姓名
Worksheets(2).Range(ActiveCell, ActiveCell).Offset(0, 2).Value = answer.Offset(0, 1).Value '電話號碼
Worksheets(2).Range(ActiveCell, ActiveCell).Offset(0, 3).Value = answer.Offset(0, 2).Value '員工號碼

ActiveCell.Offset(1, 0).Select

Loop

End Sub

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
paicheng0111
iT邦大師 5 級 ‧ 2021-01-10 17:04:47

Set answer = Worksheets(1).Range("A:A").Find(inputdate, MatchCase:=True, lookat:=xlWhole)

改成

Set answer = Worksheets(1).Range("A:C").Find(inputdate, MatchCase:=True, lookat:=xlWhole)

然後用answerrow號,搭配不同的column號去取不同的欄位,塞進各自的位置中。

AnakinTai iT邦新手 5 級 ‧ 2021-01-11 23:53:59 檢舉

如果我將Range("A:C").Find改成Cells.Find呢?
我就會變成全個worksheets尋找.怎樣回傳?
如果我輸入一個不存在的我要怎樣在worksheet(3)"錯誤的"資訊?
就是說我在輸入欄中輸入"周喻"我希望他在worksheet(3)中回傳"周喻"worksheet(2)繼續跑.跳過錯誤的資料..
求大神指教.我的VBA都是自學的求大神指點一下迷津.謝謝.

如果我將Range("A:C").Find改成Cells.Find呢?
我就會變成全個worksheets尋找.怎樣回傳?
如果我輸入一個不存在的我要怎樣在worksheet(3)"錯誤的"資訊?你的

這些問題都可以自己try出來

我要發表回答

立即登入回答