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 是一个数组。非常感谢您的帮助。
我正在尝试编写一个 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 是一个数组。非常感谢您的帮助。