Excel 用于在范围内包含参数的宏

Excel macro to include parameter in Range

我正在尝试编写一个 excel 宏,这里简要介绍一下它的作用 1) 使用位于共享站点的输入参数打开一个 excel 文件。 2)根据输入参数进行过滤。 3) 将过滤后的值复制到新的电子表格中并对其进行排序。

我在编写选择范围时发现问题。

BuildID为入参

'将列号转换为列名

ColNo = BuildID + 2
colnm = Split(Cells(, ColNo).Address(True, False), "$")

'以下部分将过滤“信息”选项卡上的第 6 行,并仅复制那些标记为“更改”或“从输入构建 ID 新建”的内容

Rows("6:6").Select
Selection.AutoFilter
MsgBox (colnm)
cColNm = "colnm" & 6
MsgBox (cColNm)
Range("cColNm").Select
ActiveSheet.Range("$A:$IR").AutoFilter Field:="ColNo", Criteria1:="<>"
Range("A7:B45").Select
Selection.Copy

我在第一个 msgbox 收到类型不匹配错误。 (colnm 与 debug.print 函数一起工作正常,它将立即打印 window 但不会存储在任何地方) 一个类似的消息框在我早期的程序中工作

有人可以帮我指出这里有什么问题吗?

感谢吉普车。

我确实删除了 msgbox 中的括号,即使这样它也给了我一个错误... 根本原因是我试图使用没有引用的 msgbox 显示数组

excel 宏中的 split 函数给出了一个元素数组。 我试图在没有引用的情况下在数组上发送 msgbox,因此它失败了...

我已经更正了代码。它看起来像下面。//

colnm = Split(Cells(, ColNo).Address(True, False), "$")(0)

'以下部分将过滤 GeneralInfo 选项卡上的第 6 行,并仅复制那些标记为 Change 或 New from input build ID

行数("6:6").Select Selection.AutoFilter MsgBox列 cColNm = 列数 & 6 MsgBox cColNm

我给出了 (0) 表示该数组的第一个元素

colnm = Split(Cells(, ColNo).Address(True, False), "$")(0)

糟糕的是我不知道 split 是一个数组。非常感谢您的帮助。