0

我学习 Microsoft Excel 作为我的主题,我给了一个使用 VBA 宏制作过滤器的任务。

这就是我所拥有的:

Worksheet("Main") , Worksheet("USA") , Worksheet("Asia") 和 Worksheet("Europe")

这是我必须做的:

将用户剪贴板中的一些数据粘贴到 Worksheet("Main")。计算相同大洲的所有数据并获得总输入的 10%(即:总共 1000 个输入粘贴在 Worksheet main 上,500 个来自非洲,350 个来自亚洲,150 个来自欧洲。所以将从工作表复制的数据("Africa") 只有 50 个输入,这 50 个输入应该有来自 AMOUNT 列的过滤器

这是我所有工作表的标题,

本地 | 数量 | 大陆 | 附加评论 |


现在这是我在网上冲浪时所做的。

    Sub copyPasteData()
        Dim strSourceSheet As String
        Dim strDestinationSheet As String
        Dim lastRow As Long
        strSourceSheet = "Main"
        Sheets(strSourceSheet).Visible = True
        Sheets(strSourceSheet).Select
        Range("C2").Select ' This is where I could filter the CONTINENTS.
    Do While ActiveCell.Value <> ""
        strDestinationSheet = ActiveCell.Value
    ActiveCell.Offset(0, -2).Resize(1, ActiveCell.CurrentRegion.Columns.Count).Select
        Selection.Copy
        Sheets(strDestinationSheet).Visible = True
        Sheets(strDestinationSheet).Select
        lastRow = LastRowInOneColumn("A")
       Cells(lastRow + 1, 1).Select
       Selection.PasteSpecial xlPasteValues
        Application.CutCopyMode = False
        Sheets(strSourceSheet).Select
        ActiveCell.Offset(0, 2).Select
        ActiveCell.Offset(1, 0).Select
        Loop
    End Sub

    Public Function LastRowInOneColumn(col)
        Dim lastRow As Long
        With ActiveSheet
        lastRow = .Cells(.Rows.Count, col).End(xlUp).Row
        End With
        LastRowInOneColumn = lastRow
    End Function

使用上面的代码,我可以根据给定的大陆进行过滤。但问题是如何获得用户粘贴的总输入的 10%?

任何帮助,将不胜感激。谢谢

4

1 回答 1

0

按大陆排序。

对信息进行排序后,您可以计算每个大陆的项目,这样您就知道有多少输入“应该有来自 AMOUNT 列的过滤器”。

于 2013-09-13T13:59:26.090 回答