使用VBA将一张excel工作表的格式复制到另一张excel工作表

使用VBA将一张excel工作表的格式复制到另一张excel工作表,vba,excel,excel-formula,Vba,Excel,Excel Formula,是否可以使用VBA将一张excel工作表的格式复制到另一张工作表 像手动操作一样,我们可以选择整个工作表,然后单击“格式”按钮。然后选择其他工作表并复制格式。是否可以通过代码来完成 谢谢和问候 沙希尔·乔杜里绝对是。下面是示例代码 看 在下面找到完整代码,以粘贴名为“源”的工作表的格式,包括颜色、列宽、行高、注释、数据验证,,但内容除外(值、公式)将单元格添加到同一工作簿中的所有其他工作表,不包括作为数组的工作表列表 Option Explicit Sub Wsh_PasteSpecial_T

是否可以使用VBA将一张excel工作表的格式复制到另一张工作表

像手动操作一样,我们可以选择整个工作表,然后单击“格式”按钮。然后选择其他工作表并复制格式。是否可以通过代码来完成

谢谢和问候
沙希尔·乔杜里绝对是。下面是示例代码


在下面找到完整代码,以粘贴名为“源”的
工作表的格式,包括
颜色、列宽、行高、注释、数据验证,
,但
内容除外(
值、公式
)将单元格添加到同一
工作簿中的所有其他
工作表
,不包括作为
数组的
工作表列表

Option Explicit

Sub Wsh_PasteSpecial_Test()
Dim aWshExcluded As Variant, vWshExc As Variant
aWshExcluded = Array("Exclude(1)", "Exclude(2)")

Dim WshSrc As Worksheet
Dim WshTrg As Worksheet

Rem Set Source Worksheet
Set WshSrc = ThisWorkbook.Worksheets("Source")
Application.ScreenUpdating = 0

    Rem Process All Worksheets
    For Each WshTrg In WshSrc.Parent.Worksheets

        Rem Exclude Worksheet Source
        If WshTrg.Name <> WshSrc.Name Then

            Rem Validate Worksheet vs Exclusion List
            For Each vWshExc In aWshExcluded
                If WshTrg.Name = vWshExc Then GoTo NEXT_WshTrg
            Next

            Rem Process Worksheet Target
            With WshTrg.Cells
                WshSrc.Cells.Copy
                .PasteSpecial Paste:=xlPasteFormats     'Source format is pasted.
                .PasteSpecial Paste:=xlPasteComments    'Comments are pasted.
                .PasteSpecial Paste:=xlPasteValidation  'Validations are pasted.
                Application.CutCopyMode = False
                Application.Goto .Cells(1), 1
    End With: End If:

NEXT_WshTrg:

    Next  

Application.Goto WshSrc.Cells(1), 1
Application.ScreenUpdating = 1

End Sub
选项显式
子Wsh_特殊_测试()
尺寸AWSHE不作为变型,vWshExc作为变型
awsheexcluded=数组(“排除(1)”,“排除(2)”)
将WshSrc设置为工作表
将WshTrg设置为工作表
Rem集合源工作表
设置WshSrc=thishworkbook.Worksheets(“源”)
Application.ScreenUpdate=0
Rem处理所有工作表
对于WshSrc.Parent.Worksheets中的每个WshTrg
Rem排除工作表源
如果WshTrg.Name为WshSrc.Name,则
Rem验证工作表与排除列表
对于aWshExcluded中的每个vWshExc
如果WshTrg.Name=vWshExc,则转到下一个\u WshTrg
下一个
Rem过程工作表目标
使用WshTrg.Cells
WshSrc.Cells.Copy
.Paste特殊粘贴:=xlPasteFormats的源格式已粘贴。
.Paste特殊粘贴:=xlPasteComments的注释已粘贴。
.PasteSpecial Paste:=xlPasteValidation的验证已粘贴。
Application.CutCopyMode=False
应用程序。转到。单元格(1),1
结束于:如果:
下一步:
下一个
Application.Goto WshSrc.Cells(1),1
Application.ScreenUpdate=1
端接头

Hi,根据您的解决方案,我们可以将相同的数据从源表复制到目标表。但我的要求不同。我必须在不同的工作表中使用不同的数据。我想将源工作表的格式复制到目标工作表。不是数据。嗨,Sahil Chaudhardy,恐怕我的目的不是向你提供完整的代码,而是给你一个样本,以鼓励你研究这个主题。现在请注意,当
XlPasteType枚举
引用公式时,不幸的是,它还包含值。尽管如此,我还是在一个单独的答案中发布了完整的代码。干杯
Option Explicit

Sub Wsh_PasteSpecial_Test()
Dim aWshExcluded As Variant, vWshExc As Variant
aWshExcluded = Array("Exclude(1)", "Exclude(2)")

Dim WshSrc As Worksheet
Dim WshTrg As Worksheet

Rem Set Source Worksheet
Set WshSrc = ThisWorkbook.Worksheets("Source")
Application.ScreenUpdating = 0

    Rem Process All Worksheets
    For Each WshTrg In WshSrc.Parent.Worksheets

        Rem Exclude Worksheet Source
        If WshTrg.Name <> WshSrc.Name Then

            Rem Validate Worksheet vs Exclusion List
            For Each vWshExc In aWshExcluded
                If WshTrg.Name = vWshExc Then GoTo NEXT_WshTrg
            Next

            Rem Process Worksheet Target
            With WshTrg.Cells
                WshSrc.Cells.Copy
                .PasteSpecial Paste:=xlPasteFormats     'Source format is pasted.
                .PasteSpecial Paste:=xlPasteComments    'Comments are pasted.
                .PasteSpecial Paste:=xlPasteValidation  'Validations are pasted.
                Application.CutCopyMode = False
                Application.Goto .Cells(1), 1
    End With: End If:

NEXT_WshTrg:

    Next  

Application.Goto WshSrc.Cells(1), 1
Application.ScreenUpdating = 1

End Sub