单元格 属性 - 运行-时间错误 91

Cells property - Run-time error 91

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

然后将列名转换为列号。

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

但是当我尝试在单元格 属性 中使用范围内的列号时,出现 91 运行 次错误。这里的大部分解决方案都是针对没有正确设置范围的。

Run-time error 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)

我卡在那里了。

谢谢。

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

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

Range 中使用范围对象时,它需要有两个开头和结尾。既然你只想要一个,那就直接参考吧

不需要模块,直接使用match就可以了,不过这里有一个函数:

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

此处的名称是您的列的名称 header,oSheet 是 sheet 的名称,如果您要搜索的行是not 1. 如果你去掉引号你会得到字母,而不是数字。