VBA中的头函数
我在Excel VBA中有一个函数,用于搜索标题并使用它们定义某些范围。它看起来可以很好地工作,但当我调用它时,它在这一行中断:VBA中的头函数,vba,function,excel,columnheader,Vba,Function,Excel,Columnheader,我在Excel VBA中有一个函数,用于搜索标题并使用它们定义某些范围。它看起来可以很好地工作,但当我调用它时,它在这一行中断:Set rngHeaders=Intersect(工作表(sheetName)。UsedRange,工作表(sheetName)。Rows(ROW_HEADERS)),我不知道为什么。它给了我一个下标超出范围的错误。sheetName变量是一个字符串,并且sheet Sheet8(我正在传递给它)确实存在。除了我在Sub中调用它的那一行之外,我还发布了下面的整个函数。任
Set rngHeaders=Intersect(工作表(sheetName)。UsedRange,工作表(sheetName)。Rows(ROW_HEADERS))
,我不知道为什么。它给了我一个下标超出范围的错误。sheetName变量是一个字符串,并且sheet Sheet8(我正在传递给它)确实存在。除了我在Sub中调用它的那一行之外,我还发布了下面的整个函数。任何帮助都将不胜感激
Function FindHeader(HEADER_NAME As String, sheetName As String) As Range
Dim rngHeaders As Range
Dim rngHdrFound As Range
Const ROW_HEADERS As Integer = 1
Set rngHeaders = Intersect(Worksheets(sheetName).UsedRange, Worksheets(sheetName).Rows(ROW_HEADERS))
Set rngHdrFound = rngHeaders.Find(HEADER_NAME)
If rngHdrFound Is Nothing Then
MsgBox ("ERROR: Cannot find appropriate header.")
Exit Function
End If
Set FindHeader = Range(rngHdrFound.Offset(1), rngHdrFound.End(xlDown))
End Function
这句话的意思是:
Sheet8.Activate
sheetName = "Sheet8"
Set rng1 = FindHeader("Client Exclusion List", sheetName)
VBA区分工作表
.Name
属性和.CodeName
属性.CodeName
是指在VBA项目树视图中可见的名称(通常为Sheet1、Sheet2等)。.Name
位于.CodeName
后面的括号中。此外,.Name
是Excel前端工作表选项卡中的值
如果将.CodeName
传递到工作表
集合,它将生成错误(除非.CodeName
和.Name
相同)
希望这会有所帮助。它甚至没有到达那一行…它在定义
rngHdrFound
之前就在这一行中断了。您能在调用函数的那一行中尝试以下操作吗:将第二行[sheetName=“Sheet8”
]更改为sheetName=Sheet8.Name
ahh我的错了,如果你做了MsgBox工作表(sheetName)。Name
发生了什么事?@user3561813成功了!一定是有名字的东西!谢谢