1

我有下面的函数,假设将下面项目的属性设置为 True 或 False。我可以在除此之外的所有属性上执行此操作:

.Application.ExecuteExcel4Macro("Show.ToolBar(""Ribbon"", False)")

当我尝试用我的参数 boolStatus 替换 False 并运行该函数时,它不会改变。所以我放弃了,只是将其保留为 False,但我真的需要从 False 更改为 True,反之亦然,否则我的功能只能工作一半。就目前而言,我必须创建第二个函数,将行设置为 True,我很确定这是双重工作。

Module sheetView

    Public xlWB As Excel.Workbook = CType(Globals.ThisWorkbook.Application.ActiveWorkbook, Excel.Workbook)
    Public xlWS As Excel.Worksheet = CType(xlWB.ActiveSheet, Excel.Worksheet)

        Function ViewSheets(boolStatus As Boolean) As String

        'This function selects a dashboard and hides
        'the gridlines, headings, tabs and toolbar.

        '@parameter sheetName, calls the sheet to be selected
        '@parameter status, sets the objects to view or hide


        With xlWS

            .Application.ScreenUpdating = False

            'Disable the following controls
            .Application.ActiveWindow.DisplayGridlines = boolStatus
            .Application.ActiveWindow.DisplayHeadings = boolStatus
            .Application.ActiveWindow.DisplayWorkbookTabs = boolStatus
            .Application.DisplayFormulaBar = boolStatus
            .Application.DisplayStatusBar = boolStatus
            .Application.ExecuteExcel4Macro("Show.ToolBar(""Ribbon"", False)")


            .Application.ScreenUpdating = True

        End With


        Return ""

    End Function

End Module

我在那条线上做错了什么?

4

2 回答 2

3

您可以尝试以下方法:

.Application.ExecuteExcel4Macro("Show.ToolBar(""Ribbon"", " + boolStatus.ToString() +")")

或类似的东西

请检查此代码以了解确切的 VB.Net 语法

于 2013-08-15T02:55:24.017 回答
2

我认为问题在于您将字符串传递给宏函数,因此您需要将 boolStatus 与字符串连接起来,如下所示:

.Application.ExecuteExcel4Macro("Show.ToolBar(""Ribbon"", " + boolStatus.ToString() + ")")

您之前的代码可能是将变量名称添加到字符串中,因此出现了问题。例如,如果您之前的代码是:

.Application.ExecuteExcel4Macro("Show.ToolBar(""Ribbon"", boolStatus)")

传递给的参数ExecuteExcel4Macro看起来像 Show.ToolBar("Ribbon", boolStatus)。

使用上面的第一个代码片段,它看起来像:

Show.ToolBar("Ribbon", False)
于 2013-08-15T02:59:51.097 回答