Excel 将整行复制到行中给定实例的另一张图纸
我有一张很大的数据表,希望将包含Excel 将整行复制到行中给定实例的另一张图纸,excel,vba,copy-paste,Excel,Vba,Copy Paste,我有一张很大的数据表,希望将包含“HVT”的所有行复制并粘贴到另一张表上。我是VBA新手,我认为我的代码搜索整个单元格,而不是单元格的内容。例如,如果单元格仅显示“HVT”,则可以工作,但单元格中有多个字符串。一个可能位于单元中的示例是类似于“购买的机械系统减振器HVT” Excel if语句接受通配符,因此您只需知道是否要匹配整个单词“HVT”: 匹配整个单词: If Worksheets("Sheet1").Cells(i, 11).Value Like "* HVT *" Or Works
“HVT”
的所有行复制并粘贴到另一张表上。我是VBA新手,我认为我的代码搜索整个单元格,而不是单元格的内容。例如,如果单元格仅显示“HVT”,则可以工作,但单元格中有多个字符串。一个可能位于单元中的示例是类似于“购买的机械系统减振器HVT”
Excel if语句接受通配符,因此您只需知道是否要匹配整个单词“HVT”: 匹配整个单词:
If Worksheets("Sheet1").Cells(i, 11).Value Like "* HVT *" Or Worksheets("Sheet1").Cells(i, 11).Value Like "HVT *" Or Worksheets("Sheet1").Cells(i, 11).Value Like "* HVT" Then
或匹配HVT的任何实例(“xHVTx”返回true
):
将起作用以下代码已更新:
Sub transferHVT()
Dim mySH As Worksheet
Set mySH = ThisWorkbook.Sheets("Sheet1")
Dim sSH As Worksheet
Set sSH = ThisWorkbook.Sheets("Sheet2")
Application.ScreenUpdating = False
Dim sh2_Row As Integer
sh2_Row = 1
For a = 2 To mySH.Cells(Rows.Count, 11).End(xlUp).Row
If InStr(mySH.Cells(a, 11).Value, "HVT") <> 0 Then
'Loop through all the column
For b = 1 To mySH.Cells(a, Columns.Count).End(xlToLeft).Column
sSH.Cells(sh2_Row, b).Value = mySH.Cells(a, b).Value
Next b
sh2_Row = sh2_Row + 1
End If
Next a
Application.ScreenUpdating = True
End Sub
Sub-transferHVT()
将mySH设置为工作表
设置mySH=thishworkbook.Sheets(“Sheet1”)
将sSH设置为工作表
Set sSH=thisvoolk.Sheets(“Sheet2”)
Application.ScreenUpdating=False
Dim sh2_行为整数
sh2_行=1
对于a=2到mySH.Cells(Rows.Count,11).End(xlUp).Row
如果InStr(mySH.Cells(a,11).Value,“HVT”)为0,则
'循环遍历所有列
对于b=1到mySH.Cells(a,Columns.Count).End(xlToLeft).Column
Cells(sh2_行,b).Value=mySH.Cells(a,b).Value
下一个b
sh2_行=sh2_行+1
如果结束
下一个
Application.ScreenUpdating=True
端接头
复制了HVT所在的特定单元格,但我希望复制整行尝试更新代码,循环复制行的所有列
If Worksheets("Sheet1").Cells(i, 11).Value Like "*HVT*" Then
Sub transferHVT()
Dim mySH As Worksheet
Set mySH = ThisWorkbook.Sheets("Sheet1")
Dim sSH As Worksheet
Set sSH = ThisWorkbook.Sheets("Sheet2")
Application.ScreenUpdating = False
Dim sh2_Row As Integer
sh2_Row = 1
For a = 2 To mySH.Cells(Rows.Count, 11).End(xlUp).Row
If InStr(mySH.Cells(a, 11).Value, "HVT") <> 0 Then
'Loop through all the column
For b = 1 To mySH.Cells(a, Columns.Count).End(xlToLeft).Column
sSH.Cells(sh2_Row, b).Value = mySH.Cells(a, b).Value
Next b
sh2_Row = sh2_Row + 1
End If
Next a
Application.ScreenUpdating = True
End Sub