我有下面的函数,假设将下面项目的属性设置为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
我在这条线上做错了什么?
答案 0 :(得分:3)
您可以尝试以下方法:
.Application.ExecuteExcel4Macro("Show.ToolBar(""Ribbon"", " + boolStatus.ToString() +")")
或类似的东西
请检查此代码以获取准确的VB.Net语法
答案 1 :(得分:2)
我认为问题在于您将字符串传递给宏函数,因此需要将boolStatus与字符串连接起来,如下所示:
.Application.ExecuteExcel4Macro("Show.ToolBar(""Ribbon"", " + boolStatus.ToString() + ")")
您之前的代码可能是将变量名添加到字符串中,因此问题就出现了。例如,如果您之前的代码是:
.Application.ExecuteExcel4Macro("Show.ToolBar(""Ribbon"", boolStatus)")
传递给ExecuteExcel4Macro
的参数看起来像Show.ToolBar(“Ribbon”,boolStatus)。
使用上面的第一个代码段,它看起来像:
Show.ToolBar("Ribbon", False)