以下函数用于循环遍历一系列列标题并返回所选标题的列号。该函数获取搜索名称和执行搜索的工作表。
Function getColumn(name As String, sheet As Worksheet) As Integer
Dim k As String, flag As Boolean, column As String
flag = False
k = 1
Do While flag <> True
column = sheet.Cells(1, k).Value
If column = name Then
flag = True
Else
flag = False
k = k + 1
End If
Loop
getColumn = k
End Function
它在以前的工作表中有效,但此行突出显示为错误点。
column = sheet.Cells(1, k).Value
我尝试过以多种方式传递工作表名称。作为Sheet9,没有引号,作为Sheet(&#34; PAYABLES&#34;)等。
我还尝试更改参数类型,因此表格是一个字符串并且具有以下内容:
column = Sheets(sheet).Cells(1, k).Value
但没有运气!
PLZ HALP
答案 0 :(得分:1)
如果从工作表单元格调用该函数,则应传递工作表 name 而不是工作表对象:
Function getColumn(name As String, sheetn As String) As Long
Dim k As Long, flag As Boolean, column As String
flag = False
k = 1
Do While flag <> True
column = Sheets(sheetn).Cells(1, k).Value
If column = name Then
flag = True
Else
flag = False
k = k + 1
End If
Loop
getColumn = k
End Function
将起作用:
如果包含错误处理逻辑会更好。