根据另一张纸上的两个随机信息片段,在一张纸上填充和填充单元格

时间:2015-01-25 09:43:02

标签: excel vba

我在酒店管家管理。我需要一种更好的方法来跟踪每天清洁房间的进度。

我在excel电子表格中创建了酒店的视觉描述,如果房间(我的电子表格中的单元格)中有一个“3”,则单元格变为红色,底部的另一个图形将计算房间。这样,如果我有35个房间需要在下午3点之前清理,我可以看到它们在酒店对面的位置,并在页面底部显示它们的具体数量。下午2点签到数字为“2”的情况也是如此,除非它变为蓝色。

现在对于棘手的部分...我需要整个图表自动填充,以便每个单元格值由不同电子表格上的两个不同信息和该电子表格上的2个不同列确定。第1列中的信息是随机的,需要找到,但第2列中的信息直接位于第1列的对应部分,并与其对应部分直接相关。

我需要1]位于另一个电子表格的第1列中的房间号码,以自动对应于我的电子表格中的正确单元格(或房间号码)。 2]在另一个电子表格的第2列中,它列出了他们签入的时间(下午14:00,下午15:00)。我需要第2列中的时间与第1列中的房间号相对应,因为它会自动填充我的图表。

因此,如果房间305在列表中(并非所有房间都在),并且在它旁边的列显示14:00(下午2点)到达,我需要在我的电子表格(305室)中填写正确的单元格来填充如果它是305房间,下午3点到达,则需要自动填充数字3.我知道MACRO必须使用,但我无法找出根据房间改变我的单元格的公式第1栏中随机列出的编号,以及第2栏中相应的登记时间。请帮助!!

1 个答案:

答案 0 :(得分:0)

首先,您需要将房间地图中单元格的位置映射到房间号码,然后在"房间时间内查找该房间号码"表,然后将结帐时间返回到地图中的单元格。

这是一些示例代码。从房间中的每个单元格调用此函数" map":

Function WhatTime(rngMap as Range, rngTime As Range)
    Application.Volatile

    Dim addr, v, rv

    addr = Application.Caller.Address(False, False)
    'find the room number...
    v = Application.VLookup(addr, rngMap, 2, False)

    If Not IsError(v) Then
        'got the room number: look up the time
        v = Application.VLookup(v, rngTimes, 2, False)
        If Not IsError(v) Then
            rv = IIf(Len(v) > 0, Hour(v) - 12, "")
        Else
            rv = "" 'room not in time listing
        End If
    Else
        rv = "Room?" 'cell address not in cell<->room map
    End If

    WhatTime = rv

End Function

设置示例: 房间地图中的所有单元格都有公式=WhatTIme($F$7:$G$11, $F$14,$G$18)

enter image description here

地图中的单元格使用条件格式进行着色。