Cells属性 - 运行时错误91

时间:2017-11-21 14:21:41

标签: excel vba range runtime-error cells

所以,我正在尝试创建子过程,其中一个参数是列名。

然后将列名转换为列号。

Dim ColNum As Integer: ColNum = Range(ColumnNM & 1).Column

但是当我尝试在范围内使用列号时,使用单元格属性我得到91运行时错误。这里的大多数解决方案都是为了不正确设置范围。

  

运行时错误91

这里给我的错误:

Dim rngTA As Range: Set rngTA = wsTA.Range(Cells(24, ColNum))

和这个(实验,不确定这是否是用字符串地址设置范围的正确方法)

Dim addr As String: addr = Cells(24, ColNum).Address(RowAbsolute:=False, ColumnAbsolute:=False)
Dim rngTA As Range: Set rngTA = wsTA.Range(addr)

我被困在那里。

感谢。

2 个答案:

答案 0 :(得分:3)

您不需要RangeCells()是范围对象:

Dim rngTA As Range: Set rngTA = wsTA.Cells(24, ColNum)

Range中使用范围对象时,需要有两个开头和一个结尾。由于您只想要一个,所以请直接参考。

答案 1 :(得分:2)

你不需要一个模块,你可以只使用匹配,不过,这里有一个函数:

Function Letter(oSheet As Worksheet, name As String, Optional num As Integer)
If num = 0 Then num = 1
Letter = Application.Match(name, oSheet.Rows(num), 0)
'Letter = Split(Cells(, Letter).Address, "$")(1)
End Function

此处的名称是列标题的名称,oSheet是工作表的名称,如果您搜索的行不是1,则有一个可选变量可用作数字。如果删除引号,则可以得到这封信,而不是数字。