首页 > 解决方案 > 调整excel visual basics中的宏代码

问题描述

大家下午好,

目前,我正在处理一个宏的问题,该宏总是引用我在其中记录宏的一个 Excel 工作表。我有大约 300 个工作表,我想在其上使用宏。我的问题是如何调整代码以引用这些工作表中的任何一个,而不仅仅是我记录它的那个。

案子

在下面我列出了部分代码,而关键部分由定义“Sheets("6110").Select”显示,其中宏始终引用工作表“6110”而不是工作表和。此外,所有工作表都使用相同的密码保护,这意味着我想实现宏在代码开头取消保护工作表并在操作结束时再次保护它的过程。

(宏代码视觉基础)

Sheets("6110").Select
ActiveSheet.Unprotect
Range("C5:C13,D4:P13").Select
Range("D4").Activate
With Selection.Font
    .Name = "Calibri"
    .Strikethrough = False
    .Superscript = False
    .Subscript = False
    .OutlineFont = False
    .Shadow = False
    .Underline = xlUnderlineStyleNone
    .TintAndShade = 0
    .ThemeFont = xlThemeFontMinor
End With

标签: excelvba

解决方案


希望下面的代码可以帮助您理解要点:

Option Explicit

Sub LoopAllSheets()

    Dim ws As Worksheet
    Dim rng As Range

    'You loop all the worksheets in the workbook
    For Each ws In ThisWorkbook.Worksheets

        'Create a with statement referring the sheet you are currenlty loop
        With ws

            'Unprotect the loop sheet may need to add your password
            .Unprotect

            'Create a range you want to use
            Set rng = .Range("C5:C13,D4:P13")

            'You refer to the range fonts
            With rng.Font
                .Name = "Calibri"
                .Strikethrough = False
                .Superscript = False
                .Subscript = False
                .OutlineFont = False
                .Shadow = False
                .Underline = xlUnderlineStyleNone
                .TintAndShade = 0
                .ThemeFont = xlThemeFontMinor
            End With

        End With

    Next ws

End Sub

推荐阅读