簡體   English   中英

根據單元格值將范圍粘貼到不同的工作表中

[英]Paste a range into different sheets, based on a cell value

我有一個Excel文檔,每個文檔在單獨的工作表上包含52個每周時間表,以及一個“當前”時間表,該時間表用作模板,在整個學年中可能會發生變化。 我已經在52個時間表中的每一個中創建了按鈕,方法是進入“當前”模板並復制/粘貼我需要的范圍,這些按鈕會自動填充,但是當它在一年中的一半發生變化時,這有點麻煩,您必須遍歷所有TT從那時起,單擊按鈕。

相反,我想要的是模板中的一個按鈕,該按鈕可填充所有52個TT,從某個星期開始(例如“ Week32”),可通過模板中的數據驗證下拉菜單選擇該按鈕。 因此,您可以選擇要填寫的星期,然后單擊按鈕,然后按一下。

大多數代碼是非常基本的。 我只是不知道從哪里開始,從該單元格獲取星期名稱並將其轉換為指定的TT及其后續名稱。 每個TT表的名稱分別為“ Week1”,“ Week2”等,因此,如果有幫助,它們應該已經與下拉列表中的值完全匹配。

我已經使用了自動填充按鈕的以下代碼(它們運行了六次;周一至周六)。 任何改進的建議,歡迎:)

    Sub Fillsheet10()
'
' Fillsheet10 Macro

    Sheets("CurrentSheet").Select
    Range("A3:A5").Select
    Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Week10").Select
    Range("C3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

[ 在此處輸入圖片說明 ]

您可以使用usisng更新一張工作表:

Sub UpdSheet()
wk = Range("F10")  ' in your example Week31

Sheets("CurrentSheet").Select
Range("A3:A5").Select
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
Application.CutCopyMode = False
Selection.Copy

Sheets(wk).Select
Range("C3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
......
End Sub

或者您可以在nr時更新所有工作表。 第一周是> =,您將修改提示:要修改所有工作表,您的第一周將是1

Sub UpdAllSheet()
Dim ws As Worksheet
Dim wk As Integer

Sheets("CurrentSheet").Select
Range("A3:A5").Select
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
Application.CutCopyMode = False
Selection.Copy

wk = Range("F10")  ' now you do only imput 31
For Each ws In ActiveWorkbook.Worksheets
    wknr = Replace(ws.Name, "Week", "")
    If wknr >= wk Then
        UpdSheet (ws.Name)
    End If
Next
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM