Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba I';I’我想查看工作表是否存在,并选择工作表,但;参数非可选“;出现_Vba_Excel - Fatal编程技术网

Vba I';I’我想查看工作表是否存在,并选择工作表,但;参数非可选“;出现

Vba I';I’我想查看工作表是否存在,并选择工作表,但;参数非可选“;出现,vba,excel,Vba,Excel,编译错误: 参数不是可选的 然后,按下Ok键后,CheckSheet将突出显示此行: If CheckSheet() = True Then Worksheet.Select End If Function CheckSheet(ByVal SheetName As String) As Boolean Dim Sheet As Worksheet Dim bReturn As Boolean For Each Sheet In Ac

编译错误: 参数不是可选的

然后,按下Ok键后,CheckSheet将突出显示此行:

    If CheckSheet() = True Then
        Worksheet.Select
    End If

Function CheckSheet(ByVal SheetName As String) As Boolean

    Dim Sheet As Worksheet
    Dim bReturn As Boolean

    For Each Sheet In ActiveWorkbook.Sheets
       If Sheet.Name = SheetName Then
           bReturn = True
           Exit For
       End If
   Next Sheet

   CheckSheet = bReturn
End Function
使用参数调用函数,如此行所示:

If CheckSheet() = True Then
        Worksheet.Select
End If
请尝试以下方法:

Function CheckSheet(ByVal SheetName As String) As Boolean

编辑:正如@YowE3K所指出的,您的
.Select
语句也需要知道有问题的工作表。已更改
工作表。选择
工作表(“您的工作表名称”)。选择

缺少的参数是
ByVal SheetName As String
。您必须提供要查找的工作表的名称。例如,
如果CheckSheet(“Sheet 1”)=True
您的
CheckSheet
函数希望向其传递字符串。你不是。这样做,它就会起作用。然后需要修复下一行,除非您有一个调用了
工作表
对象。希望您没有,因此它更可能是
工作表(“someWorksheetName”)。请选择
。我不能只指定一张工作表,因为我正在检查活动工作簿中的所有工作表(如果该工作表存在)。我应该提出什么论点?@HydesYase-你要检查的那张纸的名字是什么?在David的示例中,将其作为参数,而不是“YourSheetName”。@HydesYase-该参数是您要检查的工作表的名称,它不指定您要检查的工作表。事实上,你仍然在所有的纸上循环。
Dim wsName as String
wsName = "YourWorksheetName"

If CheckSheet(wsName) = True Then
            Sheets(wsName).Select
End If