vba - 比较三个范围(2 vs 1)并增加价值(advancefilter)
问题描述
我有 2 张桌子。
一个在表 1 (f2) 上,一个在表 2 (f1) 上。我找到并修改了以下代码来比较每个表之间的值:
Sub Complète()
Dim lg&, f1 As Worksheet, f2 As Worksheet
Dim RedRange As Range
Dim i, y, x, z As Integer
Application.ScreenUpdating = False
Set f1 = Sheets("Feuil2")
Set f2 = Sheets("Feuil1")
f1.Activate
lg = Application.Max( _
f1.Cells.Find("*", , , , xlByRows, xlPrevious).Row, _
f2.Cells.Find("*", , , , xlByRows, xlPrevious).Row)
Range("r2") = "=COUNTIF(Feuil1!b3:b" & lg & ",b3)=0"
Range("a2:e2" & lg).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
Range("r1:r2"), CopyToRange:=Range("g2:k2"), Unique:=True
Range("g3:j" & [g65000].End(xlUp).Row) _
.Copy Destination:=f2.Range("a" & Rows.Count).End(xlUp)(2)
它运行良好,但我不明白它是如何工作的......我的问题是:我想添加一个我不想复制的 BAN 名称范围。
目前:
如果名称在 f2 上并且在 f1 上,则名称不是副本。(按预期工作)
如果名称在 f1 上而不在 f2 上,则名称为副本。
我想更改第 2 行以添加新的名称范围 (ExclusionRng) :
- 如果名称在 ExclusionRng 中,则即使名称在 f1 上且不在 f2 中,也不会被复制。(但如果名称不在 ExclusionRng 中,则进行复制)
由于我是 vba 的初学者,我不明白为什么在 lg 的昏暗区域中有一个“&”。Advancefilter 非常快,但我以前从未使用过...
解决方案
推荐阅读
- fusion360 - 如何在 Fusion 350 中对一端为圆形,另一端为正方形的圆柱体进行调制
- reactjs - Ant Design 的“折叠的内联菜单”错误
- r - D 函数返回零
- ios - HeaderCell 仅被添加到表视图一次
- python - 日期时间绘图回溯无信息
- python - 更改 maptlotlib 的默认样式会破坏图例标记
- python - 在python中将CSV转换为JSON文件
- ios - FileProvider:“CopyItem()”被调用了两次 -> 错误(FTP 下载)
- javascript - 通过 onclick 事件将多个参数传递给 JavaScript 函数
- javascript - 无法使用带有共享组件的 formControl 绑定默认值