首页 > 解决方案 > 为什么我的 Union (Arg1, Arg2 ...) 中的前两个之后的参数没有在我的 Values 中表达?

问题描述

在不深入研究我的项目的情况下,我正在尝试匹配工作簿工作表之间的值,并且对于每个工作表,我想创建一个包含 3 列(连续)的联合以匹配,但是当我设置联合以获取值时为了匹配,我只看到在调用值时产生了我的 Union 的前两个参数。

下面是我的本地人的代码和图像......

Sub TestUnion()

    Dim Filename2 As Variant: Filename2 = Worksheets("SOURCES").Range("A2") & ".xlsx"
    Dim WB2 As Workbook: Set WB2 = Workbooks(Filename2)

    Dim SourceRngB, SourceRngC, SourceRngF, SourceRng As Range
    Set SourceRngB = WB2.Worksheets("LIVE KEYS").Range("$B$27")
    Set SourceRngC = WB2.Worksheets("LIVE KEYS").Range("$C$27")
    Set SourceRngF = WB2.Worksheets("LIVE KEYS").Range("$F$27")
    Set SourceRng = Union(SourceRngB, SourceRngC, SourceRngF)

    Dim SourceVal As Variant: SourceVal = SourceRng.Value

End Sub

在此处输入图像描述

我希望所有 3 个范围值都用 Locals 表示。

顺便说一句,您在代码中看到的“27”最终将是一个在从 2 到 y(行数)开始的循环(“$B$”和 x)内变化的变量,因此我可以比较 3 个单元格(Bx,Cx ,Fx) 在我的“LIVE”表的每一行与其他“TEST”表一起粘贴,并将匹配项粘贴到 Results 表中。代码将从结果表运行。

标签: excelvba

解决方案


推荐阅读