“如何创build一个工作表的dynamic视图(filter)” – 后续

在之前的问题中,提供了一个解决scheme,在独立的工作表上创build一个主列表的dynamic子集。 我需要做一些非常相似的事情,但似乎无法使解决scheme适应其他问题,满足我的具体需求。

我的情况是我有35个帐户调和。 每个帐户都有唯一的五位数字。 主数据列表有6列。 我想为35个帐户中的每一个帐户分配一个工作表,每个工作表将仅拉取第三列与特定工作表帐户相匹配的行。

进一步阐述。 我们只需要三十五个中的三个。 我们将使用40000,40100和40200.这六栏分别是“条目号”,“date”,“帐号”,“借记”,“信用”和“参考”。

在工作表1,“40000”,我想拉六列的数据,只为“帐号”=我的工作表(40000)的名称的行。 在第二个工作表,名为“40100”,我只想拉动“帐号”列中包含“40100”的行的六列数据,并在第三个工作表,称为“40200”,我想在“账号”栏中拖出包含“40200”的六列数据。

以前的答案提供了一种在单独的工作表上创build子集的方法,但在主数据列表的同一页上使用键值。 我希望在每个工作表上列出关键值,以便我不必为每个帐户都提供完整的数据列表。

编辑: 这是我在上面的问题中提到的最初的问题/答案 。 我喜欢使用“排名”的底部解决scheme,但正如我上面所说,如果关键值可能在每个工作表(即40000,40100,40200等)上,而不是在主数据列表上,我会喜欢它。 键值是工作表名称,即帐号(40000,40100等)

工作表已经存在。 每个月我只需打开上个月的工作表,将其保存为新的月份,并用新月份的数据覆盖数据。

任何援助将非常感激。

谢谢!

这很容易通过几个嵌套循环来完成。

关键要素是:获取每个工作表的最后一行,循环遍历行,工作表和列,使用IF语句有条件地testing帐号是否与工作表名称匹配。

让我们从头到尾看看它。 跟随评论:

1.遍历源表单中的每一行

2.遍历每个工作表以查找与工作表名称相匹配的tempAccount值

3.find匹配后,循环遍历从一张纸到下一张纸的所有6列。

testing:

Private Sub AccountsToSheets() Dim lastRow As Long 'Last Row on source sheet Dim lastTRow As String 'For last Target Row Dim target As String 'For temp name Dim tRow As Long 'Target Row Dim source As String 'Source Sheet Name Dim tempAccount As String 'Variable for account number Dim ws As Worksheet 'For looping through worksheets '----SETUP VARIABLES----; source = "Sheet1" 'Define Name of Source Sheet HERE lastRow = Sheets(source).Range("A" & Rows.count).End(xlUp).row '----BEGIN LOOP THROUGH SOURCE SHEET----' For lRow = 2 To lastRow tempAccount = Sheets(source).Cells(lRow, "C").Text '--BEGIN LOOP THROUGH WORKSHEETS TO CHECK FOR MATCH--' For Each ws In Worksheets If ws.Name <> source Then 'Eliminate checking Source Sheet If ws.Name = tempAccount Then 'Use sheet that's name matches tempAccount target = ws.Name lastTRow = Sheets(target).Range("A" & Rows.count).End(xlUp).row tRow = lastTRow + 1 'Set the row value on target sheet '--LOOP THROUGH ALL COLUMNS AND COPY DATA--' For lCol = 1 To 6 Sheets(target).Cells(tRow, lCol) = Sheets(source).Cells(lRow, lCol) Next lCol End If End If Next ws Next lRow End Sub 

在这里输入图像说明在这里输入图像说明在这里输入图像说明在这里输入图像说明