【发布时间】:2021-10-21 23:16:05
【问题描述】:
我在 sheet1 和 sheet2 中获得了数据,我想将它们复制并粘贴到 sheet3 中。那已经完成了。所以接下来我想通过检查列 C、D、E、H 和 I 来匹配行。C 和 H 列的值是整数,其余的是文本/字符串。
如果两行匹配,那么我想将其中一行复制并粘贴到新的第三张纸中,并在 H 列中添加与 H 列的整数差(如果所有列中的行都匹配,则差值为 0)
如果两行不匹配,将其中一行复制并粘贴到新的第四张纸中,并在 H 列中添加与 H 列的整数差
到目前为止的代码:
Sub CopyPasteSheet()
Dim mySheet, arr
arr = Array("Sheet1", "Sheet2")
Const targetSheet = "Sheet3"
Application.ScreenUpdating = False
For Each mySheet In arr
Sheets(mySheet).Range("A1").CurrentRegion.Copy
With Sheets(targetSheet)
.Range("A1").Insert Shift:=xlDown
If mySheet <> arr(UBound(arr)) Then .Rows(1).Delete xlUp
End With
Next mySheet
Application.ScreenUpdating = True
End Sub
【问题讨论】:
-
“接下来我要匹配行” - 来自哪些工作表的行? “在新的第三张纸上”?你已经有 3 张纸了。 “如果两行不匹配,请将其中一行复制并粘贴到新的第四张纸中” - 来自哪张纸的行?
-
我想将 sheet1 中的所有行与 sheet2 中的所有行匹配。如果所有列(包括金额)都匹配,则将其中一个匹配的行复制并粘贴到 sheet3 中。如果除 H 列之外的所有列都匹配,则将粘贴复制到 sheet4 并覆盖 H 列,并说明 sheet1 和 sheet2 的两行之间的数量差异。那有意义吗? :)
-
好的,有多少行,超过 10,000 行?最大的文本字符串有多少个字符?
-
文本字符串不时变化,但此数据输入的最长字符串为 22 个字符(不含空格)和 25 个字符(含空格)。行数不接近 10.000。所以不超过 10.000 :)。我已经回答了我到目前为止所做的事情(在帮助下)。
-
好的,看看新答案