作者kk04014 (阿助)
看板Visual_Basic
标题[VBA ]跨工作表查询
时间Mon Mar 7 14:28:06 2016
请问一下各位,我现在想把第一个工作表cells(i,3)的序号在第二个工作表
第四栏做查询,如果第二个工作表第四栏的序号跟第一个工作表第三栏的序号相同,
则把第一个工作表cells(i,3)~cells(i,13)复制贴到第二个工作表对应的栏位中。
但却出现需要物件的错误讯息,请大家帮忙看一下 谢谢
Sub cusip()
Dim i As Integer
Dim cn As Integer
Dim rng As Range
Sheets("sheet1").Select
For i = 2 To 842
Set aa = sheet2.Cells.Find(what:=sheet1.Cells(i, 3), LookIn:= _
xlValues, LookAt:=xlPart,
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext,
MatchCase:=False).Activate
Next
If aa = Cells(i, 3).Value Then
Let cn = rng.Find("aa").Column
Range(Cells(i, 3), Cells(i, 13)).Select
Selection.Copy
Sheets("sheet2").Select
Range(Cells(cn, 4), Cells(cn + 4, 4)).Select
Selection.Paste
Else
End If
End Sub
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 163.22.18.105
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Visual_Basic/M.1457332088.A.5B4.html
※ 编辑: kk04014 (163.22.18.105), 03/07/2016 14:29:39
※ 编辑: kk04014 (163.22.18.105), 03/07/2016 14:33:38
3F:→ kk04014: 不是耶!第三栏和第四栏的值是位於不同列 03/07 18:33
5F:→ MashiroX421: 那麽第三栏的值是否都是唯一且不重复呢? 03/07 18:50
6F:→ kk04014: 是的 03/07 20:58
10F:→ MashiroX421: 请在Copy那里加底线,即是 Copy _ 03/07 22:59
11F:→ kk04014: 同样是destination那行语法错误 03/07 23:07
可以请问DESSTINATION那行
E&application.Match(Worksheets("sheet1").Range("C" & i)的意思吗?
因为我现在虽然能跑了,但是这个程式几乎没效,根本没有贴过去
※ 编辑: kk04014 (163.22.18.73), 03/07/2016 23:47:01
13F:→ MashiroX421: 测试下原PO的语法发现,在Cells(i,3),Cells(i,13) 03/07 23:43
14F:→ MashiroX421: 这段会产生错误,因此改用Range来判断 03/07 23:45
15F:→ MashiroX421: 那段Copy语法是将前面那部份的储存格贴到目标储存格 03/07 23:49
18F:→ MashiroX421: 引号之间要留一个空白,另外下方Sheet2要小写 03/08 00:04
19F:→ MashiroX421: Range("C" & i & "M" & i) 03/08 00:05
20F:→ kk04014: 只有一两个有成功贴过去,其他都没有耶 03/08 00:16