Fw: [VBA ] 資料自動換欄位(完成)加入VLOOK自動查表
※ [本文轉錄自 Visual_Basic 看板 #1LGR8kWq ]
作者: hugh509 ((0_ 0)) 看板: Visual_Basic
標題: Re: [VBA ] 資料自動換欄位(完成)加入VLOOK自動查表
時間: Thu Apr 30 12:40:10 2015
※ 引述《hugh509 ((0_ 0))》之銘言:
: 目前希望的格式是
: A B C D E F G H
: 1
: 2 編號 名稱 |x001 資料表1 11111 x203 資料表203 20320
: 3 x001 xxxx | 1111111 11111 203203203 20320
: 4 x002 xxxx | 1111111 11111 203203203 20320
: 5 . | 1111111 11111 203203203 20320
: 6 . |x002 資料表2 22222
: . | 2222222 22222
: . | 2222222 22222 ↗
: 200 x203 xxxx | 2222222 22222
: 左邊A、B欄位固定式編號及名稱
: 右邊D2放置網路抓取的表格
: 但是因為抓取的表格很多
: 所以想再一定的編號,如200列後換欄位
: 目前寫出來的是這樣,只能持續向下不會自動換欄
: 但又不知該如何著手才好,請各位大大幫忙謝謝~
: 已更新為可運行,感謝長今大幫助
: Dim PO As Integer
: Dim POY As Integer
: '清空欄位
: Columns("C:IV").Select
: Selection.ClearContents
: PO=2
: POY=3
: LRA = Range("A2").End(xlDown).Row
: For i = 3 To LRA
: If Sheets("匯入資料").Cells(i, 2) <> "" Then
: ValuesSno = "$A$" & i
: LinkSS = "URL;http://xxxxxx.xxxx" & Sheets("匯入資料").Cells(i, 1)
:
: If PO >=200 Then
: PO = 2
: POY = POY + 3
: End If
: With ActiveSheet.QueryTmables.Add(Connection:= _
: LinkSS, Destination:=Sheets("匯入資料").Cells(PO , POY _
: ))
: .FieldNames = True
: .
: .
: .
: End With
: '帶入編號,欄位也是向右邊移兩欄
: Cells(PO , POY) = "=VLOOKUP(A" & i & ",A:B,1,0)"
: PO = PO + 4
: End If
: Next i
想上面同樣的迴圈,添入下面這段
達到這種自動填表的功能
("分析資料")
A B C D E F
1 編號 品名
2 x0001 xaaa
3 x0002 xbbb
Dim mrange As Range
Set myrange = Sheets("匯入資料").Range(Cells(PO, POY), Cells(PO + 3, POY + 1))
Sheets("分析資料").Cells(i, 1) = "=VLOOKUP(" & Sheets("匯入資料").Cells(i, 1)
& ",匯入資料!$A:$B,1,0)"
編號這段已經可以運行
Sheets("分析資料").Cells(i, 2) = "=VLOOKUP(" & Sheets("分析資料 ").Cells(i,
) & "," & myrange & ",2,0)"
但對於品名這段,卻因為將範圍設為變數無法運行
因為品名在選取的表格中,它的位置是不固定的
有時在第二格,有時在第三格
所以才想用VLOOKUP做,想請教一下該怎樣達到目標?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.252.41.19
※ 文章網址: https://www.ptt.cc/bbs/Visual_Basic/M.1430368814.A.834.html
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 轉錄者: hugh509 (111.252.41.19), 05/01/2015 15:55:11
→
05/01 16:45, , 1F
05/01 16:45, 1F
→
05/01 16:45, , 2F
05/01 16:45, 2F
你好,不太明白你說的
因為我是想將最上面原本"匯入資料"中各自分散的表格內容
填入"分析資料"一個的大表格內,由於"品名"和其他欄位在各自表格內位置不固定
才想用VLOOKUP讓它去找,其實要找到哪一個標的不是問題
現在遇到的問題是VLOOKUP(標的,範圍,欄位,T/F)的範圍
我現在想做的是讓它利用迴圈選起"匯入資料"獨立的表格
匯入到"分析資料"的B欄-品名中
如第一個迴圈找表格D2:E5,第二個迴圈找D6:E9...
就是這裡的範圍變數,一直無法運作成功
感謝你的回覆,想請教一下VLOOKUP有辦法這樣做嗎??
→
05/01 19:10, , 3F
05/01 19:10, 3F
→
05/01 19:14, , 4F
05/01 19:14, 4F
→
05/01 19:14, , 5F
05/01 19:14, 5F
Set usedrng = Cells.SpecialCells(2, 3)
看到這新方法很興奮,雖然google爬完
試了很久才大概知道怎麼使用它來控制範圍
原本設想是每匯入一個表格,然後去抓那個表格範圍
可是現在遇到兩個問題
1.抓取的工作表是用來填入的
2.抓取範圍確實跟著迴圈向下跑,但只有抓左邊的欄目
右邊的內容沒有被框到,變成這個狀況
http://i.imgur.com/ZsqahEg.png

但我用你給我的範本做,的確就是選取最後的整個表格沒錯
這該怎麼解決?? 感謝
→
05/01 23:36, , 6F
05/01 23:36, 6F
→
05/01 23:37, , 7F
05/01 23:37, 7F
非常謝謝你回應,第一個問題已經解決了
只是沒有設好位置,不過第二個問題
我想了好久沒辦法解決
Set usedrng = Cells.SpecialCells(2, 3)
↑確實取到想要的範圍(列)
不過還是不知道怎麼和Resize(,1)結合
把C1:C16等範圍,擴大為C1:D16
For Each a In usedrng.Areas
Sheets("分析資料").Cells(i, 2) ="=VLOOKUP(" & Sheets("匯入資料").Cells(i, 1) &
",匯入資料!" & a.Address & ",2,0)"
Next
→
05/02 18:10, , 8F
05/02 18:10, 8F
還是沒有辦法耶,這兩天資料連不上去
所以我用YAHOO的股票表格做了檔案
類似要把"營業利益率"填入其他工作表
只是我需要的是會自動尋找目標,因為我引用的表格"目標是不固定的"
而且發現SpecialCells,不若想像中好控制
像是引用股票的這個檔案,他的範圍又都不一樣了
http://www.solidfiles.com/d/a73d3876bd/test.xlsm
※ 編輯: hugh509 (111.252.34.130), 05/03/2015 15:13:03
→
05/03 15:35, , 9F
05/03 15:35, 9F
→
05/03 15:35, , 10F
05/03 15:35, 10F
→
05/03 15:39, , 11F
05/03 15:39, 11F
→
05/03 15:40, , 12F
05/03 15:40, 12F
→
05/03 15:43, , 13F
05/03 15:43, 13F
→
05/03 15:44, , 14F
05/03 15:44, 14F
非常感謝你的幫忙,已經解決了~
謝謝~
※ 編輯: hugh509 (111.252.34.130), 05/03/2015 16:50:30
Office 近期熱門文章
PTT數位生活區 即時熱門文章