excel如果单元格包含XYZ复制到新工作表
我在第1页(全部)上下载了一份银行对账单。 我有几个小部件沿着其中一个运行excel如果单元格包含XYZ复制到新工作表,excel,vba,Excel,Vba,我在第1页(全部)上下载了一份银行对账单。 我有几个小部件沿着其中一个运行 =SUMIF(C:C,H3,D:D) 在描述中搜索H3中的值(例如:*工资*),并合计D中的相应值 我现在需要扩展它,以便它将整行复制到新的电子表格中 如果可能的话,我还想从一个输入框开始,这样我可以一次搜索多个东西 我看到/尝试过的各种代码只适用于C行中的精确值。但是对于银行对账单,它永远不会重复两次,如果可能的话,我希望它对搜索进行通配符 谢谢你抽出时间 问候 Alex Nicol我最近编写了这样的VBA代码。在我
=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列,所以如果这就是你想要的,这应该是可行的。如果您需要更多,请将该循环变大。可能有一种方法可以复制整行,但我最初只想要特定的单元格,我希望它们重新组织,这就是为什么我这样做的原因
请参见我博客上的帖子:
录制一个宏并发布您得到的代码