1

我目前有一个 House Keeping (HK) 表,当她们进来时分发给女孩。为了节省早上的时间,我一直在尝试输入一个公式,自动将所有房间从 Head HK 表转移到个人HK的床单。目前,头部 HK 表看起来像这样,但没有破折号:

Housekeeper ---------- Room --------- Status ------ Set Up

Katie ------------------ 1 ---------- Ready ------- Double

Sue -------------------- 2 ------ Departing ------- Single

Katie ------------------ 3 ------ Stay over ------- Family

这继续到 43 号房间

我想使用 HK 的名字作为主要数据源,所以当我在各个 HK 表上选择他们的名字(使用下拉菜单)时,它会自动填写下面与她在房间顺序中关联的所有单元格。

4

2 回答 2

0

我写了一个关于如何做到这一点的教程,如果您有任何问题,请告诉我:

http://www.excelforum.com/tips-and-tutorials/947848-lookup-a-value-and-return-multiple-results.html

于 2013-08-16T22:04:34.680 回答
0

如果您有一张包含所有信息的表格,并且您想依次为每个女孩创建一个“摘录”,您至少有两个选择

1) 如果您只需要打印每个 HK 的工作表一次,请使用主工作表上的“自动筛选”选项,然后点击“打印” - 并为每个管家重复此操作。它仍然需要一些工作(虽然只有 43 个房间,也许还有几个管家,但并不多)。

2)如果您想在工作簿中为每个管家提供一个单独的工作表,您可能需要更多地自动化操作 - 使用 VBA 宏。这并不难,但考虑到您提出问题的方式,您可能不想解决它。如果你这样做 - 这是一种方法:

  1. 使用名为“MasterSheet”的工作表创建工作簿:这是您放置所有信息的地方
  2. 为每个管家创建一张单独的表格 - 称您的表格为“Katie”、“Sue”等 - 为每个员工一张(无论他们是否在今天的名单上)
  3. 在“模块”中添加以下代码:从工作簿中,按Alt-F11,然后(在 VBA 编辑器中)插入...模块并粘贴此代码:
Sub createDailyWorklist()
'
' Update a series of worksheets based on the first ("Master") sheet
'

'
Dim sh As Worksheet
Application.ScreenUpdating = False

For Each sh In ActiveWorkbook.Sheets
  If Not sh.Name = "MasterSheet" Then ' skip first sheet - it is the "master"
  sh.Activate ' select the sheet
  sh.Cells.Clear ' remove old content
  ' set the criteria for the filter:
  sh.Range("A1").Value = "HK" ' column to filter on
  sh.Range("A2").Value = "'=" & sh.Name ' value to find = sheet name (housekeeper name)
                                        ' using the '= to get an exact match (not "starting with")
                                        ' otherwise Jane would get Janet's work too...

  ' there are 43 rooms so we know where the input data range is:
  Sheets("MasterSheet").Range("A1:D44").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=sh.Range("A1:A2"), CopyToRange:=Range("A3:D3"), Unique _
        :=False
  Rows("1:2").Delete   ' get rid of the criteria
  Columns("A:D").EntireColumn.AutoFit ' make the columns just wide enough
  End If
Next sh

Application.ScreenUpdating = True

End Sub

当您想创建工作列表时,您按下Alt-F8,然后从出现的菜单中选择“createDailyWorklist”。点击“运行”

嘿,快!每个管家都有一张纸,需要做的房间等等。

显然,您可以修改它以更好地满足您的需求 - 格式、要复制的字段数量等。但我希望这能让您继续前进。

于 2013-08-16T22:05:40.120 回答