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非空才执行。 展开
用VBA在Sheet1中D1:Q1区域内查找Sheet2!C2单元格的值,并返回所在列第一个空单元格。
以Sheet2!B2单元格的值为条件,在Sheet1中D1:Q1区域内查找确认列,然后剪切Sheet2!C2单元格的值到刚才查找列中第一个空单元格(比如说刚才查找到,E1符合条件,那么就把C2的值剪切到E列中第一个为空的单元格上)。最好可以检查一下B2,C2非空才执行。 展开
4个回答
展开全部
下面的程序可以满足功能,如有需要把查找源和目标改一下就行了
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
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
展开全部
打开录制宏(工具=》宏菜单下),然后把你的操作做一遍,最后关闭宏录制,你就得到代码了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Sub Findp()
Dim k
k = Range("A:B").Find("BCD").Row
MsgBox k
End Sub
Dim k
k = Range("A:B").Find("BCD").Row
MsgBox k
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
发答案时,总是说有不适合发表的词
程序已放到我的空间,但链接也贴不上来,自己过去看吧
题目就是LZ的提问题目
程序已放到我的空间,但链接也贴不上来,自己过去看吧
题目就是LZ的提问题目
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询