簡體   English   中英

Excel 2010-根據下拉值將數據復制到指定的工作表中。

[英]Excel 2010 - Copy data to a specified sheet based on drop-down value.

本論壇的新手,希望有人能提供幫助!

我正在為一個項目創建資源數據庫。 我創建了一個名為“摘要”的工作表,以輸入資源的詳細信息(組織,類型,位置,聯系方式等)。 該列表是垂直組織的,並且具有一些下拉數據驗證字段。 見總結

我想做的是將宏附加到“添加到數據庫”按鈕上,該按鈕將根據下拉列表中的值將數據從“摘要”表復制到其他工作表之一(單元格:E4)並將其水平轉置,然后清除場。

我已經創建了單個宏來執行此操作(共9個),例如:

Sub EMPTADD()
Application.ScreenUpdating = False
Range("E2:E19").Select
Selection.Copy
Sheets("Employability & Training").Activate
Range("A750").End(xlUp).Select
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Sheets("Summary").Activate
Range("E2:E19").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("E2").Select
Application.ScreenUpdating = True
End Sub

我只是想不出從那里去哪里。 我可以使用IF函數確定E4是否保持特定值並調用相關的宏嗎? 任何幫助表示贊賞:)

您不需要使用激活/選擇類型命令。 VBA的工作能力遠不止於此。 使用激活/選擇類型的命令還可以打開您的編碼,從而產生許多意想不到的后果。 有時您認為很活躍,而excel認為很活躍,可能是兩件事。 最好的方法是完全確定范圍,因此毫無疑問。

就編碼而言,您似乎正在嘗試手動復制單擊特定范圍並操作數據的方式(也許是基於記錄宏的方法?)。 我們可以更加動態地使用VBA! 我會用這樣的東西:

Sub CopyPasteData()

'Declare your variables
Dim wb As Workbook
Dim criteria As String
Dim i As Long

Application.ScreenUpdating = False

    'Set values for your variables.
    Set wb = ThisWorkbook
    criteria = wb.Sheets("Summary").Range("E4")
    i = wb.Sheets(criteria).Range("A" & Rows.Count).End(xlUp).Row

        'Tell excel where to copy and paste your data
        wb.Sheets("Summary").Range("E1").Copy
        wb.Sheets(criteria).Range("A" & i + 1).PasteSpecial xlPasteValues
        wb.Sheets("Summary").Range("E2").Copy
        wb.Sheets(criteria).Range("B" & i + 1).PasteSpecial xlPasteValues
        wb.Sheets("Summary").Range("E3").Copy
        wb.Sheets(criteria).Range("C" & i + 1).PasteSpecial xlPasteValues
        wb.Sheets("Summary").Range("E4").Copy
        wb.Sheets(criteria).Range("D" & i + 1).PasteSpecial xlPasteValues

Application.ScreenUpdating = True


End Sub

如果使用變量設置一些值,則可以對所有工作簿使用一個宏。 否如果需要聲明! wb變量創建一個快捷方式,用於聲明該宏應在哪個工作簿中運行。將標准值設置為在Summary工作表中的單元格E4中輸入的任何值。 只要您的工作表名稱與E4中的下拉列表匹配,它就會告訴excel將數據放入哪個工作表。i變量計算包含數據的行數(這樣我們就可以在這些數據的底部粘貼新數據行)。

然后,最后的代碼只是告訴Excel在哪里復制數據,以及在哪里粘貼數據。 根據需要調整范圍以執行所需的操作。

暫無
暫無

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

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