Header VBA 中的函数
Header function in VBA
我在 Excel VBA 中有一个函数可以搜索 headers 并使用它们来定义某些范围。看起来它可以很好地工作,但是当我调用它时,它会在这一行中断:Set rngHeaders = Intersect(Worksheets(sheetName).UsedRange, Worksheets(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
传递给 Worksheets
集合,它将产生错误(除非 .CodeName
和 .Name
相同)。
希望这对您有所帮助。
我在 Excel VBA 中有一个函数可以搜索 headers 并使用它们来定义某些范围。看起来它可以很好地工作,但是当我调用它时,它会在这一行中断:Set rngHeaders = Intersect(Worksheets(sheetName).UsedRange, Worksheets(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
传递给 Worksheets
集合,它将产生错误(除非 .CodeName
和 .Name
相同)。
希望这对您有所帮助。