首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建自定义VBA函数以显示服务记录上的小组分配

创建自定义VBA函数以显示服务记录上的小组分配
EN

Stack Overflow用户
提问于 2015-09-08 21:20:07
回答 1查看 103关注 0票数 0

我有一个很大的表格,里面有我们的临床医生提供的服务的清单。我还有一个单独的表,上面有临床医生的姓名、ID号和团队分配。问题是,Services表不包含我需要的Team列。

我想要一个VBA函数,它将查找Services表,并基于临床医生ID,将团队名称作为新的单元格插入到服务记录中。

在过去,我曾使用条件格式化来实现这一点,=ISNUMBER(MATCH(F1,TeamAClinicians,0))。其中,F1保存服务的临床医生ID,TeamAClinicians是临床医生/团队表上的临床医生ID的命名范围。然后,我将对每个团队重复此规则,然后在按颜色对表格进行排序后手动输入团队。

这是无效的,并且只适用于相对较小的表。一个自定义的VGA函数,我可以将表复制到它自己的列中,这将是无价的。

有什么想法吗?

编辑:如下所示,VLOOKUP是最好的选择。我最后使用了一行非常简单的代码:=vlookup( F1,ClinicianTable,3,FALSE),其中F1是包含员工ID的单元格,ClinicianTable是包含团队分配的命名表。

EN

回答 1

Stack Overflow用户

发布于 2015-09-09 00:15:05

如果你想使用excel VBA,你可以试试下面给出的代码。下面是说明性的样本表。您可以根据自己的实际情况修改程序。

尝试以下代码:

代码语言:javascript
运行
复制
 Sub Test()
    Dim i As Long, j As Long, colStatus As Long, lastrowplus As Long, lastrowminus As Long

    colStatus = 3 'your status column number
    lastrowplus = Sheets("Sheet1").Cells(Sheets("Sheet1").Rows.Count, 1).End(xlUp).Row
    lastrowminus = Sheets("Sheet2").Cells(Sheets("Sheet2").Rows.Count, 1).End(xlUp).Row

    For i = 1 To lastrowplus
        For j = 1 To lastrowminus
            If Sheets("Sheet1").Cells(i, 1).Value = Sheets("Sheet2").Cells(j, 1).Value Then
                Sheets("Sheet2").Cells(j, colStatus).Value = Sheets("Sheet1").Cells(i, colStatus).Value
            End If
        Next j
    Next i
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32458954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档