※ [本文转录自 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做,想请教一下该怎样达到目标?
作者: soyoso (我是耀宗) 2015-05-01 16:45:00
品名的部分,位置变量可用matchmatch(""品名"",汇入资料!$1:$1,0)用for each 变量 in range.areas...next的方式https://goo.gl/QWKC4s 范例档,要取范围字串,再将select改为address在那for each ...next 内在设个for each..next配合resize及offset,可以的话请提供档案