首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较相应列的行的if值不相等,插入它们

比较相应列的行的if值不相等,插入它们
EN

Stack Overflow用户
提问于 2015-03-16 22:08:47
回答 1查看 804关注 0票数 0

我有两组columns.one是另一组的子集,我想写一个宏,比较它们,如果它们不相等,插入第二组到第一组。算法ode:

代码语言:javascript
复制
if (code-1)<>(code-2) AND (serial-1)<>(serial-2) AND (amount-1)<>(amount-2) then
 (code-1)==(code-2) AND (serial-1)==(serial-2) AND (amount-1)==(amount-2)

我要把插入的行标记出来。

我的桌子如下所示:

代码语言:javascript
复制
code-1  serial-1    amount-1    code-2  serial-2    amount-2
1         11          111          1      11          111
3         33          333          1      11           11
                                   2      22           22
                                   3      33           33
                                   3      33          333

我所寻找的结果如下:

代码语言:javascript
复制
code-1  serial-1    amount-1    code-2  serial-2    amount-2
   1     11           111          1      11          111
   3     33           333          1      11          11
   1     11           11           2      22          22
   2     22           22           3      33          33
   3     33           33           3      33         333
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-17 14:19:39

更新

这段新代码将创建2个auxiliar列来运行vlookup,以消除在宏运行以选择要复制的单元格时不符合标准的所有列,并在完成后删除这2列。

但是remenber我是根据你给我的内容写的代码,所以只有当A列到C列,D列到F列时,它才能工作。

如果它有效,请记住将此代码标记为非常感谢的答案。]

新代码:

代码语言:javascript
复制
Sub yoursub()

Dim lstr1        As Long
Dim lstr2        As Long
Dim mark1        As Long

lstr2 = Sheets(1).Cells(Rows.Count, 4).End(xlUp).Row

lstr1 = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1

mark1 = lstr1 - 1

Range("A1").EntireColumn.Insert
Range("A1").EntireColumn.Insert

For i = 2 To mark1

Cells(i, 2) = Cells(i, 3) & "-" & Cells(i, 4) & "-" & Cells(i, 5)

Next

For j = 2 To lstr2

Cells(j, 1).FormulaR1C1 = "=VLOOKUP(RC[5]&""-""&RC[6]&""-""&RC[7],C[1],1,FALSE)"

Next

For j = 2 To lstr2

If WorksheetFunction.IfError(Cells(j, 1), "Error") = "Error" Then

Range(Cells(j, 6), Cells(j, 8)).Copy
Cells(lstr1, 3).PasteSpecial xlPasteValues
lstr1 = Sheets(1).Cells(Rows.Count, 3).End(xlUp).Row + 1

End If

Next

Range("A1").EntireColumn.Delete
Range("A1").EntireColumn.Delete

End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29087855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档