Excel VBA 查找到的单元格位置

有两个表:Sheet1,Sheet2用VBA在Sheet1中D1:Q1区域内查找Sheet2!C2单元格的值,并返回所在列第一个空单元格。以Sheet2!B2单元格的值为... 有两个表:Sheet1,Sheet2
用VBA在Sheet1中D1:Q1区域内查找Sheet2!C2单元格的值,并返回所在列第一个空单元格。
以Sheet2!B2单元格的值为条件,在Sheet1中D1:Q1区域内查找确认列,然后剪切Sheet2!C2单元格的值到刚才查找列中第一个空单元格(比如说刚才查找到,E1符合条件,那么就把C2的值剪切到E列中第一个为空的单元格上)。最好可以检查一下B2,C2非空才执行。
展开
 我来答
xannin
2010-06-03 · TA获得超过119个赞
知道答主
回答量:29
采纳率:0%
帮助的人:5.3万
展开全部
下面的程序可以满足功能,如有需要把查找源和目标改一下就行了

Option Explicit
Sub text()
Dim rngFind As Range
Dim rngData As Range
Dim iCOL As Integer
Dim iROW As Long
Dim cell As Range

Set rngFind = ThisWorkbook.Worksheets("sheet2").Range("B2")
Set rngData = ThisWorkbook.Worksheets("sheet1").Range("D1:Q1")

iCOL = 0
If rngFind.Value = "" Or rngFind.Offset(, 1) = "" Then
MsgBox "查找条件不符合:查找源为空"
Exit Sub
End If
For Each cell In rngData
If cell.Value = rngFind.Value Then iCOL = cell.Column
Next
If iCOL = 0 Then MsgBox "什么也没找到!": Exit Sub

iROW = ThisWorkbook.Worksheets("sheet1").Cells(65536, iCOL).End(xlUp).row
ThisWorkbook.Worksheets("sheet1").Cells(iROW + 1, iCOL) = rngFind.Offset(, 1).Value
rngFind.Offset(, 1).ClearContents

End Sub
uffspace
2010-05-24 · TA获得超过108个赞
知道小有建树答主
回答量:222
采纳率:50%
帮助的人:114万
展开全部
打开录制宏(工具=》宏菜单下),然后把你的操作做一遍,最后关闭宏录制,你就得到代码了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jh_richey
2010-05-24 · TA获得超过1160个赞
知道小有建树答主
回答量:1440
采纳率:100%
帮助的人:185万
展开全部
Sub Findp()
Dim k
k = Range("A:B").Find("BCD").Row
MsgBox k
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2010-05-30 · TA获得超过8613个赞
知道大有可为答主
回答量:3242
采纳率:66%
帮助的人:2802万
展开全部
发答案时,总是说有不适合发表的词

程序已放到我的空间,但链接也贴不上来,自己过去看吧
题目就是LZ的提问题目
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式