繁体   English   中英

MS-Excel VB宏-筛选和传输

[英]MS-Excel VB Macro - Filter and Transfer

我以学习Microsoft Excel为主题,我已经下了任务,要使用VBA宏制作过滤器。

这就是我所拥有的:

工作表(“主要”),工作表(“美国”),工作表(“亚洲”)和工作表(“欧洲”)

这是我要做的:

将一些数据从用户剪贴板粘贴到Worksheet(“ Main”)。 计算具有相同大洲的所有数据,并获得总输入的10%(即:在工作表主上粘贴了总计1000个输入,从非洲粘贴了500个输入,从亚洲粘贴了350个,从欧洲粘贴了150个,因此将从工作表复制的数据(“非洲”)仅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%?

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

按大陆排序。

信息排序后,您可以计算每个大洲的项目,因此您知道“应从AMOUNT列中进行过滤”的输入数量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM