Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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
excel如果单元格包含XYZ复制到新工作表_Excel_Vba - Fatal编程技术网

excel如果单元格包含XYZ复制到新工作表

excel如果单元格包含XYZ复制到新工作表,excel,vba,Excel,Vba,我在第1页(全部)上下载了一份银行对账单。 我有几个小部件沿着其中一个运行 =SUMIF(C:C,H3,D:D) 在描述中搜索H3中的值(例如:*工资*),并合计D中的相应值 我现在需要扩展它,以便它将整行复制到新的电子表格中 如果可能的话,我还想从一个输入框开始,这样我可以一次搜索多个东西 我看到/尝试过的各种代码只适用于C行中的精确值。但是对于银行对账单,它永远不会重复两次,如果可能的话,我希望它对搜索进行通配符 谢谢你抽出时间 问候 Alex Nicol我最近编写了这样的VBA代码。在我

我在第1页(全部)上下载了一份银行对账单。 我有几个小部件沿着其中一个运行

=SUMIF(C:C,H3,D:D)
在描述中搜索H3中的值(例如:*工资*),并合计D中的相应值

我现在需要扩展它,以便它将整行复制到新的电子表格中

如果可能的话,我还想从一个输入框开始,这样我可以一次搜索多个东西

我看到/尝试过的各种代码只适用于C行中的精确值。但是对于银行对账单,它永远不会重复两次,如果可能的话,我希望它对搜索进行通配符

谢谢你抽出时间

问候


Alex Nicol

我最近编写了这样的VBA代码。在我使用“付款”一词时,可以使用“工资”一词并包含通配符,如下所示:

a.Cells(b.Row, 16).Value LIKE "*Wages*"


Sub ShortTerm()
Dim a As Range, b As Range
Dim i As Long
Dim j As Long
Dim p As Long
Dim value1 As Variant

 i = 4 'the start row for pasting

Set a = ThisWorkbook.Sheets("Payments").UsedRange

For Each b In a.Rows

'in the next line change 16 to reflect the column where WAGES is found
If a.Cells(b.Row, 16).Value = "Short Term" Then
For j = 1 to 16
value1 = a.Cells(b.Row, j).Value
ThisWorkbook.Sheets("DestinationSheet").Cells(i, j).Value = value1
Next

i = i + 1
End If
Next
End Sub
很明显,我只复制了16列,所以如果这就是你想要的,这应该是可行的。如果您需要更多,请将该循环变大。可能有一种方法可以复制整行,但我最初只想要特定的单元格,我希望它们重新组织,这就是为什么我这样做的原因

请参见我博客上的帖子:


录制一个宏并发布您得到的代码