我学习 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%?
任何帮助,将不胜感激。谢谢