单元格 属性 - 运行-时间错误 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)
我卡在那里了。
谢谢。
您不需要 Range
。 Cells()
是一个范围对象:
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. 如果你去掉引号你会得到字母,而不是数字。
因此,我正在尝试创建子过程,其中一个参数是列名。
然后将列名转换为列号。
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)
我卡在那里了。
谢谢。
您不需要 Range
。 Cells()
是一个范围对象:
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. 如果你去掉引号你会得到字母,而不是数字。