搜索某些字符串的文本列,并在单元格Excel中返回时间

时间:2015-12-24 21:01:03

标签: excel

我在医院工作,需要记录我花在不同时间的时间和时间。临床和研究。尽管它们不是同一个东西,但有许多事情被视为临床时间。在图片中CFW,Clinic,AMJ等算作临床。不需要培训,研究,午餐,数据,r383,实验来跟踪。它看起来像这样:

___   A ____        B     
1   8:30    Training
2   9:00    CFW
3   9:30    CFW
4   10:00   CFW
5   10:30   Clinic
6   11:00   Clinic
7   11:30   Research
8   12:00   Lunch
9   12:30   Data
10  1:00    AMJ
11  1:30    AMJ
12  2:00    AMJ
13  2:30    R383
14  3:00    Experiment
15  3:30    Experiment
16  4:00    Research

我的最终目标是能够找到我可以搜索的文本列表,例如“诊所”,它告诉我我在那里的时间和花费的总时间,如10:30-11:30 1小时。

诊所:10:3​​0-11:30         1小时

因此,如果我搜索所有文本短语,那么它将花费在那里(开始 - 结束)的时间,以及总时间长度。我一周中的每一天都有一张单独的表格,理想情况下,我希望能够同时搜索所有5张表格,并且所有日子都会弹出所有有组织的等等。

例如: 星期一 诊所:10:3​​0-11:30         1小时 AMJ:1:00-2:30      1.5小时 星期二 CFW:9:00-10:30      1.5小时 等...

抱歉我的格式化。如果我需要更多信息,请告诉我。我还不能发布图片。有任何想法吗?拜托,谢谢

1 个答案:

答案 0 :(得分:0)

您希望在Excel电子表格上创建一个VBA宏,它将遍历每个工作表,查找您想要的值(例如“诊所”),捕获您的时间并计算已用时间。

您可以参考每个工作表和循环中的单元格。这是一个让你入门的shell。

Public Function elapsedTime (byval searchFor As String)
    Dim shIdx as Integer
    Dim rIdx as Integer
    Dim calc as Integer
    rIdx = 2
    For shIdx = 1 to 5
        While Sheets(shIdx).Range("A" + CStr(rIdx)).Value <> "" 
            If Sheets(shIdx).Range("B" + CStr(rIdx)).Value = searchFor Then
                Additional logic here to calculate your value and
                store it in "calc"...
            End If
            rIdx = rIdx + 1
        Wend
        rIdx = 2
    Next shIdx
    elapsedTime = calc
End Function