运行时错误“1004”传递工作表名称
以下函数devise为循环访问一系列列标题并返回所选标题的列号。 该function获取search名称和执行search的工作表。
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(“PAYABLES”)等
我也尝试改变参数types,以便表是一个string,并有这样的:
column = Sheets(sheet).Cells(1, k).Value
但是没有运气!
PLZ哈尔滨
如果您从工作表单元格调用该函数,则应传递工作表名称而不是工作表对象 :
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
将工作:
如果包含error handling逻辑,会更好。