尝试使用DisplayGridLines指令隐藏网格线仅适用于工作簿中的一个工作表

时间:2017-11-07 16:03:53

标签: excel vba excel-vba

我是Vba的初学者。

我尝试使用以下子文件的最后一个insru来隐藏我的工作簿上的单元格网格线,问题是我的工作簿是由两个工作表组成的,而网格线只隐藏其中一个(第一个):

Sub Valores()

Set NewBook = Workbooks.Add
szToday = Format(Date - 1, "YYYYMMDD")
    With NewBook
        .Title = "Control_Colaterales"
        .Subject = "Control Colaterales"
        .SaveAs Filename:="V:\Departamento\7920-SOLVENCIA\1. Riesgo de Mercado\2. RIESGO DE CONTRAPARTIDA\1. REPORTING DIARIO R.Contrapartida\1. Enviados\Colaterales\Informe_Control_Colaterales_" & szToday & ".xls"
    End With

ThisWorkbook.Worksheets(1).Activate
Cells.Select
Selection.Copy
NewBook.Sheets(1).Activate
ActiveSheet.Name = "CSA y REPO Retrospectivo"
ActiveSheet.Paste
ActiveSheet.Cells.Select
Selection.Copy
ActiveSheet.Range("A1").PasteSpecial xlPasteValues
Worksheets.Add(After:=Sheets(Worksheets.Count)).Name = "CSA y REPO Actual"
ThisWorkbook.Worksheets(1).Activate
Nows = "CSA y REPO Actual"
Worksheets(Nows).Activate
ActiveSheet.Cells.Select
Selection.Copy
NewBook.Sheets(2).Activate
ActiveSheet.Paste
ActiveSheet.Cells.Select
Selection.Copy
ActiveSheet.Range("A1").PasteSpecial xlPasteValues
NewBook.Sheets(1).Activate
ActiveSheet.Range("A1").Activate
ActiveWorkbook.Windows(1).DisplayGridlines = False

End Sub

¿任何人都可以帮助我吗?

非常感谢

2 个答案:

答案 0 :(得分:1)

它仅适用于活动工作表,因此请将最后一行更改为:

Worksheets(1).Activate
ActiveWorkbook.Windows(1).DisplayGridlines = False
Worksheets(2).Activate
ActiveWorkbook.Windows(1).DisplayGridlines = False

答案 1 :(得分:1)

尝试像这样循环以隐藏所有工作簿的网格线:

Public Sub TestMe()

    Dim cnt As Long

    For cnt = 1 To ThisWorkbook.Worksheets.Count
        Worksheets(cnt).Activate
        Windows(1).DisplayGridlines = False
    Next cnt

End Sub

您可以在代码末尾调用Sub。 编辑: 一种在不激活工作表的情况下执行此操作的方法 - How can I turn off gridlines in excel using VBA, without using ActiveWindow