Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Excel在匹配单元格时返回整行_Vba - Fatal编程技术网

Vba Excel在匹配单元格时返回整行

Vba Excel在匹配单元格时返回整行,vba,Vba,我有一本工作簿,两张不同的纸上有两张表格。 我希望L列(Sheet1)中与A列(Sheet2)中的单元格匹配的所有单元格都显示在Sheet3中的新列表中 但我希望能够看到表2中显示的整行匹配单元格 我最初做的是一个条件格式,以便看到黄色的副本,然后我添加了这个vba代码来提取匹配的单元格,但我需要整行 代码: 感谢您的帮助。谢谢你你需要做的就是在作业的任何一方添加EntireRow Sheets("Sheet3").Range("A" & Rows

我有一本工作簿,两张不同的纸上有两张表格。 我希望L列(Sheet1)中与A列(Sheet2)中的单元格匹配的所有单元格都显示在Sheet3中的新列表中

但我希望能够看到表2中显示的整行匹配单元格

我最初做的是一个条件格式,以便看到黄色的副本,然后我添加了这个vba代码来提取匹配的单元格,但我需要整行

代码:


感谢您的帮助。谢谢你

你需要做的就是在作业的任何一方添加EntireRow

Sheets("Sheet3").Range("A" & Rows.Count).End(xlUp).Offset(1).EntireRow.Value = c.EntireRow.Value
复制列中匹配项的整行
  • 它将在
    源列
    中循环,以在
    查找列
    中找到匹配项。如果找到,它将把匹配的
    查找单元格的整行
    复制到
    目标工作表
  • 只运行第一个过程。它会在必要时通知其他人
  • 调整常量部分中的值
选项显式
子副本匹配()
“常数
Const lName As String=“Sheet1”
Const lFirst As String=“L2”
Const sName As String=“Sheet2”
Const sFirst As String=“A2”
Const dName As String=“Sheet3”
Const dCol As String=“A”
'工作簿
将wb设置为工作簿:设置wb=ThisWorkbook包含此代码的工作簿
“查找
变暗lrg As范围
设置lrg=refNonEmptyColumn(wb.工作表(lName).范围(lFirst))
如果lrg为空,则退出Sub
作为变量的Dim lData:lData=getColumn(lrg)
"来源:
变暗srg As范围
设置srg=refNonEmptyColumn(wb.工作表(sName).范围(sFirst))
如果srg为空,则退出Sub
Dim sData作为变量:sData=getColumn(srg)
“目的地
Dim dCell As范围
Set dCell=refFirstEmptyCell(wb.Worksheets(dName).Columns(dCol))
如果dCell为Nothing,则退出Sub
“联合收割机
调暗crg As范围
Dim cIndex作为变体
变暗,变长
对于r=1至UBound(sData)
cIndex=Application.Match(sData(r,1),lData,0)
如果是数字(cIndex),则
设置crg=getCombinedRange(crg、srg.Cells(r))
如果结束
下一个r
”“是的
如果不是crg,那么什么都不是
crg.EntireRow.Copy数据单元
如果结束
端接头
函数refNonEmptyColumn(_
ByVal FirstCell(作为范围)_
As范围
Const ProcName As String=“refNonEmptyColumn”
关于错误转到clearError
如果不是第一个细胞什么都不是
第一个单元格。单元格(1)
暗淡的lCell As范围
设置lCell=.Resize(.Worksheet.Rows.Count-.Row+1)_
.Find(“*”,xlFormulas,,xlPrevious)
如果不是lCell,那就什么都不是了
Set refNonEmptyColumn=.Resize(lCell.Row-.Row+1)
如果结束
以
如果结束
程序出口:
退出功能
clearError:
Debug.Print“”&ProcName&“:意外错误!”&vbLf_
&“&”运行时错误“&”错误编号&“:”&vbLf_
&“”错误描述(&R)
恢复程序退出
端函数
函数getColumn(_
rg作为射程_
可选ByVal ColumnNumber,长度为1_
可选的ByVal doTranspose作为布尔值=False)_
作为变体
Const ProcName As String=“getColumn”
关于错误转到clearError
如果不是,那么rg什么都不是
如果ColumnNumber>0且ColumnNumber为1,则
如果是这样的话
Dim数据作为变量:数据=.Value
重拨结果(1对1,1对rCount)
变暗,变长
对于r=1,则为rCount
结果(1,r)=数据(r,1)
下一个r
getColumn=结果
其他的
getColumn=.Value
如果结束
其他的
重拨结果(1对1,1对1):结果(1,1)=.值
getColumn=结果
如果结束
以
如果结束
如果结束
程序出口:
退出功能
clearError:
Debug.Print“”&ProcName&“:意外错误!”&vbLf_
&“&”运行时错误“&”错误编号&“:”&vbLf_
&“”错误描述(&R)
恢复程序退出
端函数
函数refFirstEmptyCell(_
ByVal列范围作为范围)_
As范围
Const ProcName As String=“refFirstEmptyCell”
关于错误转到clearError
如果不是,则列范围为空
带ColumnRange.Columns(1)
暗淡的lCell As范围
设置lCell=.Find(“*”,xlFormulas,,xlPrevious)
如果lCell什么都不是
Set refFirstEmptyCell=.Cells(1)
其他的
设置refFirstEmptyCell=lCell.Offset(1)
如果结束
以
如果结束
程序出口:
退出功能
clearError:
Debug.Print“”&ProcName&“:意外错误!”&vbLf_
&“&”运行时错误“&”错误编号&“:”&vbLf_
&“”错误描述(&R)
恢复程序退出
端函数
函数getCombinedRange(_
比瓦尔建筑范围作为范围_
ByVal AddRange作为范围)
Const ProcName As String=“getCombinedRange”
关于错误转到clearError
如果AddRange为空,则
如果不是BuiltRange,则什么都不是
设置getCombinedRange=BuiltRange
如果结束
其他的
如果BuiltRange什么都不是,那么
设置getCombinedRange=AddRange
其他的
如果AddRange.Worksheet是BuiltRange.Worksheet,则
设置getCombinedRange=Union(BuiltRange,AddRange)
如果结束
如果结束
如果结束
程序出口:
退出功能
clearError:
Debug.Print“”&ProcName&“:意外错误!”&vbLf_
&“&”运行时错误“&”错误编号&“:”&vbLf_
&“”错误描述(&R)
简历
Sheets("Sheet3").Range("A" & Rows.Count).End(xlUp).Offset(1).EntireRow.Value = c.EntireRow.Value