Excel宏修改(或可能是VBA)来更新最后包含的工作表

时间:2018-05-28 15:55:52

标签: excel vba excel-vba

场合

尝试复制一系列包含工作表中公式的单元格,名为" Sheet1"对于其他的工作表,我发现我可以做到表现"填写工作表"。它工作正常,所以我的下一步是录制一个宏,使其更高效,并且工作得很好。

问题

问题是,当我包含一个新的工作表并运行宏时,宏不会考虑新的工作表,因此最后一个工作表没有更新。

我在宏下创建的代码下面。在其中我可以看到它仅包括我现在在工作簿中的工作表,所以这是我需要帮助的地方。

(我的excel是西班牙文,所以当你阅读Ctrl + Mayus + Q时,Mayus意味着Shiftkey)

帮助

我需要的是一种修改此宏的方法,以便在运行时检查并更新所有工作表。或者,也许是因为宏不能这样做我可能需要一个VBA代码?如果这个VBA是解决它的方法,你能帮助我吗?

我感谢所有帮助

谢谢

哈维尔

Sub Macro2()
'
' Macro2 Macro
'
' Acceso directo: Ctrl+Mayús+Q
'
    Range("A5:D12").Select
    Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4")).Select
    Sheets("Sheet1").Activate
    ActiveWindow.SelectedSheets.FillAcrossSheets Range:=Selection, 
Type:=xlAll
    Sheets("Sheet1").Select
End Sub

1 个答案:

答案 0 :(得分:1)

这是一个解决方法,关于您希望所有工作表都具有范围A5:D12范围内的第一个工作表的值:

Sub TestMe()

    Dim ws As Worksheet
    Dim selAddress As String
    selAddress = "A5:D12"

    For Each ws In Worksheets
        'ws.Range(selAddress).Value2 = Worksheets(1).Range(selAddress).Value2
        ws.Range(selAddress).Formula = Worksheets(1).Range(selAddress).Formula
    Next ws

 End Sub

请参阅How to avoid using Select in Excel VBA